Abstract:
Various exemplary embodiments relate to a method performed by a policy server in a communication network. The method includes: receiving an access request message including a vendor class identifier describing a device requesting network access; determining a service type based on the vendor class identifier; determining whether adding an additional session exceeds a limit for the service type; and performing a management action responsive to the additional session exceeding the limit for the service type.

Description:
TECHNICAL FIELD 
       [0001]    Various exemplary embodiments disclosed herein relate generally to communications networks. 
       BACKGROUND 
       [0002]    Communications network operators often provide various service types to a customer. For example, it is common for service providers to offer various combinations of voice, video, and high speed data service. 
         [0003]    Service providers may provide customer equipment for accessing the various services. For example, service providers may provide set top boxes and residential gateways. Customers may also connect their own equipment such as phones, televisions, and computers to the service provider&#39;s network. 
         [0004]    Customers may attempt to take advantage of service providers. For example, customers may share their high speed data service with neighbors or connect additional televisions to the service provider&#39;s network. 
       SUMMARY 
       [0005]    In view of the foregoing, it would be desirable to allow service providers additional control over their networks. In particular, it would be desirable to allow service providers to monitor the types of devices a subscriber connects to the network and make policy decisions based on the types of devices. 
         [0006]    In light of the present need for service provider control, a brief summary of various exemplary embodiments is presented. Some simplifications and omissions may be made in the following summary, which is intended to highlight and introduce some aspects of the various exemplary embodiments, but not to limit the scope of the invention. Detailed descriptions of a preferred exemplary embodiment adequate to allow those of ordinary skill in the art to make and use the inventive concepts will follow in later sections. 
         [0007]    Various exemplary embodiments relate to a method performed by a policy server in a communication network. The method includes: receiving an access request message including a vendor class identifier describing a device requesting network access; determining a service type based on the vendor class identifier; determining whether adding an additional session exceeds a limit for the service type; and performing a management action responsive to the additional session exceeding the limit for the service type. 
         [0008]    In various embodiments, the management action comprises rejecting the additional session. The management action may further include sending a termination request to a service router. 
         [0009]    In various embodiments, the management action includes charging an overage fee for the additional session. 
         [0010]    In various embodiments, the vendor class identifier is a dynamic host configuration protocol (DHCP) option  60 . The step of determining a service type based on the vendor class identifier may include comparing the vendor class identifier to predefined identifiers. The method may further include adding a vendor class identifier to the predefined identifiers. 
         [0011]    In various embodiments, the service type is one of: a data session, a voice session, and a video session. 
         [0012]    In various embodiments, the step of determining whether adding an additional session exceeds a limit for the service type includes: determining a current session count for the service type; determining a session limit for the service type; and determining whether the current session count is greater than or equal to the session limit. 
         [0013]    In various embodiments, the method further includes configuring a subscriber profile with a session limit for a service type. 
         [0014]    Various exemplary embodiments relate to a policy server in a communication network configured to perform the above identified method. The policy server may include a processor and a machine-readable storage medium configured to store a subscriber profile including a session limit for a service type. 
         [0015]    Various exemplary embodiments relate to a non-transitory machine-readable storage medium encoded with instructions executable for a processor to perform the above described method. 
         [0016]    It should be apparent that, in this manner, various exemplary embodiments enable network operator control of subscriber sessions. In particular, by establishing session type limits, a network operator may control the types of devices connected to a network. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0017]    In order to better understand various exemplary embodiments, reference is made to the accompanying drawings, wherein: 
           [0018]      FIG. 1  illustrates an exemplary communications network; 
           [0019]      FIG. 2  illustrates an exemplary policy server; 
           [0020]      FIG. 3  illustrates an exemplary data arrangement for storing a subscriber profile; and 
           [0021]      FIG. 4  illustrates a flowchart showing an exemplary method of making policy decisions. 
       
    
    
     DETAILED DESCRIPTION 
       [0022]    Referring now to the drawings, in which like numerals refer to like components or steps, there are disclosed broad aspects of various exemplary embodiments. 
         [0023]      FIG. 1  illustrates an exemplary communications network  100 . Communications network  100  may be a communications network for providing service to residential or business subscribers. Accordingly, communications network  100  may be considered a subscriber network. Communications network  100  may include customer equipment such as telephone  110 , set top box  120 , computer  130 , and residential gateway  140 . Communications network  100  may also include digital subscriber line access multiplexer (DSLAM)  150 , service router  160 , policy server  170 , and policy database  180 . 
         [0024]    Telephone  110  may be any telephone capable of providing digital voice over IP (VoIP) communication. Telephone  110  may be a device supplied by a subscriber. Telephone  110  may be a land-line telephone, meaning the telephone call is carried over a wired network rather than a radio-access network. Telephone  110  may establish a voice session with subscriber network  100 . As will be discussed in further detail below, telephone  110  may include a vendor class identifier indicating a voice session in an access request when connected to subscriber network  100 . As will be discussed in further detail below, a mobile device such as a smart phone, may establish a data session rather than a voice session. 
         [0025]    Set top box  120  may be a device that provides video service to a subscriber&#39;s television. Set top box  120  may be provided by a service provider as part of a subscriber&#39;s service package. In various embodiments, set top box  120  may also include various devices provided by a subscriber. For example, set top box  120  may be a cable card integrated into a television. As another example, set top box  120  may be a third party set top box purchased by the subscriber. As will be discussed in further detail below, set top box  120  may include a vendor class identifier indicating a video session in an access request when connected to subscriber network  100 . 
         [0026]    Computer  130  may be any device that establishes a data session with network  100 . Computer  130  may include desktop computers, laptop computers, tablets, smart phones, and any other device that establishes a data session. Computer  130  may include a vendor class identifier indicating a data session in an access request when connected to subscriber network  100 . 
         [0027]    Residential gateway  140  may be a device that connects one or more subscriber devices to network  100 . In various embodiments, residential gateway  140  may be a wireless router providing a data connection using a wireless protocol such as any of the 802.11 wireless protocols. Residential gateway  140  may also provide for wired Ethernet connections. 
         [0028]    DSLAM  150  may be a device controlled by a service provider. The DSLAM  150  may include a plurality of ports for connecting to or residential gateway  140 , subscriber premises equipment, or customer located equipment (CLE). Accordingly DSLAM  150  may aggregate the connections of a plurality of subscribers. DLAM  150  may send and receive traffic from a backbone connection to service router  160 . In various embodiments, DSLAM  150  may be connected to a fiber optic backbone and function as an optical line terminator (OLT). DSLAM  150  may add physical connection information such as a circuit ID to a service request. 
         [0029]    Service router  160  may be a router configured to process data traffic for a subscriber. Service router  160  may receive packets and forward them toward their destinations. Service router  160  may also be involved in subscriber access and authentication. Service router  160  may receive an access request originating from any device connected to CLE device and generate a RADIUS access request to policy server  170 . Service router  160  may include any known subscriber and device information in the service request. 
         [0030]    Policy server  170  may be a server controlled by a service provider for managing a subscriber network. Policy server  170  may be a RADIUS server communicating with one or more RADIUS clients such as, for example, service router  160 . Policy server  170  may be responsible for managing subscriber account information and making policy decisions regarding subscriber sessions. As will be described in further detail below, policy server  170  may be configured with session type limits for individual subscribers. Accordingly, policy server  170  may enforce limits on the number of sessions of a particular type that a subscriber is allowed to establish. Policy server  170  may also be responsible for enforcing service level agreements and processing billing information for subscribers. 
         [0031]    Policy database  180  may be a machine-readable storage medium configured to store subscriber information. Policy database  180  may be a stand-alone server or may be incorporated into another network node such as policy server  170 . Policy database  180  may store subscriber information including information regarding each current subscriber session and configured subscriber session limits. 
         [0032]      FIG. 2  schematically illustrates an exemplary policy server  170 . Policy server  170  may be a computer server including hardware components such as one or more processors, computer-readable memory, and network interface cards. Policy server  170  may include a network interface  210 , policy engine  220 , policy rules storage  230 , and subscriber profiles storage  240 . Policy server  170  may include policy database  180  in the form of policy rules storage  230  or subscriber profiles storage  240 . Alternatively, policy rules storage  230  or subscriber profiles storage  240  may be an external database accessible to policy engine  220 . 
         [0033]    Network interface  210  may include hardware and/or instructions encoded on a machine-readable storage medium executed by a processor to send and receive data. In various embodiments, network interface  210  may be configured to communicate using the RADIUS protocol. Network interface  210  may be configured to receive RADIUS messages and extract information in the form of attribute-value-pairs. Network interface  210  may also be configured to generate and transmit RADIUS messages to various RADIUS clients such as a service router  160 . 
         [0034]    Policy engine  220  may include hardware and/or instructions encoded on a machine-readable storage medium executed by a processor to make policy decisions. Policy engine  220  may evaluate policy rules stored in policy rules storage  230  to make policy decisions. Policy engine  220  may apply the policy rules to information received via network interface  210  as well as information in subscriber profiles storage  240  and any other available information. 
         [0035]    Policy rules storage  230  may be a machine-readable storage medium configured to store policy rules for evaluation by a policy engine  220 . In particular, policy rules may define logical rules for monitoring and limiting subscriber session types. Policy rules may define how policy engine  220  should classify subscriber sessions by service type. Policy rules may also define how policy engine  220  should apply session limits included in subscriber profiles storage  240  to the subscriber sessions. 
         [0036]    Subscriber profiles storage  240  may be a machine-readable storage medium configured to store subscriber information. As will be described in further detail below regarding  FIG. 3 , subscriber profiles may include information describing a subscriber&#39;s service agreement including any service type limits. 
         [0037]      FIG. 3  illustrates an exemplary data arrangement  300  for storing subscriber profile information. Data arrangement  300  may be stored in, for example, policy database  180  or subscriber profiles storage  240 . Data arrangement  300  may be stored as, for example, a database table, array, linked list, tree, or any other data structure suitable for storing subscriber profiles. Data arrangement  300  may include subscriber identifier  310 , subscriber limits  320 , and subscriber session information  330 . 
         [0038]    Subscriber identifier  310  may include an identifier for the subscriber. The subscriber identifier may include a username, account number, or other unique identifier for the subscriber. Subscriber identifier  310  may also include other subscriber information such as, for example, a subscriber password, and circuit ID. 
         [0039]    Subscriber limits  320  may include information describing limits on the subscriber&#39;s access. The subscriber limits  320  may be based on a subscriber&#39;s service package including any selected options. The subscriber limits  320  may include a data session limit  324 , a video session limit  326 , and a voice session limit  328 . As an example, subscriber profile  300  may indicate a data session limit  324  of 3, indicating that the subscriber may have up to 3 data sessions. Data session limit  324  may further indicate an available overage price for additional data sessions. For example, the subscriber may be able to obtain additional data sessions by agreeing to pay an overage charge per session per day. Video session limit  326  may indicate that the subscriber may have up to two video sessions. Video session limit  326  may be based on a number of televisions indicated when the subscriber selected a service package. Voice session limit  328  may indicate a maximum number of voice sessions a subscriber may have. For example, voice session limit  328  may indicate that the subscriber is allowed one voice session. The voice session limit  328  may be based on the number of telephone numbers requested by the subscriber. 
         [0040]    Subscriber sessions  330  may include information for each active subscriber session. Subscriber sessions  330  may include a session ID field  332  and a session type field  334 . Subscriber sessions  330  may include fields for any other information that may be useful to store for a session. Subscriber sessions  330  may include a plurality of entries  340  including information for active sessions. For example, entry  340   a  may indicate a video session, entry  340   b  may indicate a voice session, entry  340   c  may indicate a video session, and entry  340   d  may indicate a data session. A new entry  340  may be created whenever a new session is accepted by policy server  170 . An entry  340  may be deleted whenever a session is terminated. 
         [0041]      FIG. 4  illustrates a flowchart showing an exemplary method  400  of making policy decisions. Method  400  may be performed by policy server  170 . The method  400  may begin at step  405  and proceed to step  410 . 
         [0042]    In step  410 , a network operator may configure subscriber session limits  320 . The subscriber session limits  320  may be stored in policy database  180  and/or subscriber profiles storage  240 . The subscriber session limits  320  may be configured based on a service agreement between the subscriber and the network operator. The subscriber session limits  320  may include session type limits. The subscriber session limits may also be configured to indicate whether the limit allows overage and the charging rate for any overage. 
         [0043]    In step  415 , the policy server  170  may receive an access request message originating from a subscriber device. The subscriber device may initially request access using DHCP protocol. A subsequent network node, such as service router  160 , may include information from a DHCP request in a RADIUS Access-Request received by policy server  170 . The access request message may request a new session to provide service to the subscriber device. 
         [0044]    In step  420 , the policy server  170  may determine the service type of the access request. The policy server  170  may extract a vendor class ID from the access request. The vendor class ID may be a DHCP vendor class ID, or DHCP option  60 . The vendor class ID may include various information regarding the subscriber device including a text string. The policy server  170  may parse the vendor class ID to extract the text string. The policy server  170  may then analyze the text string to determine a session type. 
         [0045]    In various embodiments, the policy server  170  may use policy engine  220  to evaluate policy rules  230  based on the text string. The policy rules  230  may include mappings of known text strings to the type of device. The mappings may include generic strings that may be included. For example, if the text string includes the string “HSI” the policy server  170  may determine that the requested session is a data session. If the text string includes the string “VoIP”, the policy server  170  may determine that the requested session is a voice session. If the text string includes the string “STB”, the policy server  170  may determine that the requested session is a video session. The policy rules  230  may also include specific text strings used as vendor class identifiers by specific products. For example, the policy rules storage  230  may include a rule for a device using high speed internet that does not include the HSI string. The rule may include the string, or part thereof, used by the particular device. Policy rules storage  230  may be updated as new devices using different vendor class identifiers become known. A default rule may determine a session type for cases where the vendor class identifier is unknown. The default rule may also log the unknown vendor class identifiers for operator identification and update of the policy rules storage  230 . 
         [0046]    In step  425 , the policy server  170  may retrieve a subscriber profile for the subscriber. The policy server  170  may extract a username or other identifier included in the access request to determine the subscriber. The policy server may query subscriber profile storage  240  for a subscriber profile matching the subscriber identifier. 
         [0047]    In step  430 , the policy server  170  may determine whether the requested session would exceed a limit for the service type. The policy server  170  may determine a session type limit associated with the service type of the access request. For example, if the access request includes a request for a video session, the policy server  170  may retrieve the video session limit  326  from the subscriber profile  300 . The policy server  170  may also determine the current number of sessions matching the session type by checking the session type field  334  for each entry  340 . If the current number of sessions matching the session type is less than the session type limit, the method  400  may proceed to step  435 . If the current number of sessions matching the session type is greater than or equal to the session type limit, the method  400  may proceed to step  440 . 
         [0048]    In step  435 , the policy server  170  may accept the access request. The policy server  170  may update subscriber profile  300  with the new session by adding a new entry  340 . The policy server  170  may also send an Access-Accept message to service router  160 . In various embodiments, policy server  170  may also act as an accounting server. Accordingly, policy server  170  may begin monitoring usage of the new session. The method  400  may then proceed to step  465 , where the method ends. 
         [0049]    In step  440 , the policy server  170  may determine whether overage is allowed for the session type limit. The policy server  170  may check an overage field of subscriber limits  320  to determine whether overage is allowed for the subscriber. The policy server  170  may also use policy rules to determine whether overage is allowed. If overage is not allowed, the method  400  may proceed to step  445 . If overage is allowed, the method  400  may proceed to step  455 . 
         [0050]    In step  445 , the policy server  170  may deny the access request. Policy server  170  may send an Access-Reject message. In step  450 , the policy server  170  may send a message to service router  160  for terminating the associated session from the subscriber equipment. The method  400  may then proceed to step  465 , where the method ends. 
         [0051]    In step  455 , the policy server  170  may charge the overage fee to the subscriber. In various embodiments, policy server  170  may also be an accounting server. Accordingly, policy server  170  may update the subscriber information with the new charge. Alternatively, policy server  170  may send a message to an accounting or billing server indicating the overage charge. In step  460 , the policy server  170  may accept the access request. Accordingly, step  460  may be similar to step  435 . Policy server  170  may add an entry  340  to subscriber profile  300  indicating the new session. The entry  340  may also indicate that the new session is an overage session. When policy server  170  deletes any entry  340 , policy server  170  may determine whether any overage session should be converted to a regular session. The method may then proceed to step  465 , where the method ends. 
         [0052]    Having described the various components of network  100  and a method of making policy decisions, an example of the operation of network  100  will now be provided. A subscriber may have an account with the service provider to provide various network services such as voice, video, and data. The service provider may maintain a subscriber profile  300  for the subscriber including limitations on the account. The subscriber may have several devices already connected to the network. For example, subscriber profile  300  illustrates four sessions including two video sessions, one voice session, and one data session. The subscriber may then attempt to connect another device to the network. For example, the subscriber may attempt to connect another set top box  120 . Upon connection, the set top box  120  will generate a DHCP message requesting access. The DHCP message may include option  60  including the string “STB” indicating the type of subscriber device. DSLAM  150  and service router  160  may add additional information to the request and reformat the request as a RADIUS access request. 
         [0053]    Policy server  170  may receive the access request and extract the option  60  information. Based on the presence of the “STB” string, policy server  170  may determine that the request is for a new video session. Policy server  170  may then determine whether the subscriber profile allows the additional session. According to subscriber profile  300 , the subscriber has a video session limit  326  of two. Subscriber profile  300  also indicates two existing video sessions in entries  340   a  and  340   c . Therefore, policy server  170  may determine that the session type limit has been exceeded. Policy server  170  may then determine that overage is allowed based on the overage field of the video session limit  326 . Policy server  170  may then automatically charge the subscriber for the overage. Policy server  170  may then store the new session in subscriber profile  300  and send an Access-Accept message to the service router  160 , which will provide service to the set top box  120 . 
         [0054]    Alternatively, if the subscriber had connected a new computer  130 , policy server  170  may determine that an additional data session is allowed and add the new data session without charging an overage fee. On the other hand, if the subscriber had connected a new phone  110 , policy server  170  may determine that an additional voice session is not allowed and deny the access request. 
         [0055]    According to the foregoing, various exemplary embodiments provide for network operator control of subscriber sessions. In particular, by establishing session type limits, a network operator may control the types of devices connected to a network. 
         [0056]    It should be apparent from the foregoing description that various exemplary embodiments of the invention may be implemented in hardware and/or software executed by a processor. Furthermore, various exemplary embodiments may be implemented as instructions stored on a machine-readable storage medium, which may be read and executed by at least one processor to perform the operations described in detail herein. A machine-readable storage medium may include any mechanism for storing information in a form readable by a machine, such as a personal or laptop computer, a server, or other computing device. Thus, a machine-readable storage medium may include read-only memory (ROM), random-access memory (RAM), magnetic disk storage media, optical storage media, flash-memory devices, and similar storage media. 
         [0057]    It should be appreciated by those skilled in the art that any block diagrams herein represent conceptual views of illustrative circuitry embodying the principals of the invention. Similarly, it will be appreciated that any flow charts, flow diagrams, state transition diagrams, pseudo code, and the like represent various processes which may be substantially represented in machine readable media and so executed by a computer or processor, whether or not such computer or processor is explicitly shown. 
         [0058]    Although the various exemplary embodiments have been described in detail with particular reference to certain exemplary aspects thereof, it should be understood that the invention is capable of other embodiments and its details are capable of modifications in various obvious respects. As is readily apparent to those skilled in the art, variations and modifications can be affected while remaining within the spirit and scope of the invention. Accordingly, the foregoing disclosure, description, and figures are for illustrative purposes only and do not in any way limit the invention, which is defined only by the claims.