net bwc policyΒΆ

net bwc policy(1)					BIG-IP TMSH Manual					 net bwc policy(1)

NAME
       policy - Configures a bandwidth control policy for traffic flow.

MODULE
       net bwc

SYNTAX
       Configure the policy component within the net bwc module using the syntax in the following sections.

   CREATE/MODIFY
	create policy [name]
	modify policy [name]
	  options:
	    app-service [[string] | none]
	    description [string]
	    dynamic [ enabled ]
	    max-rate [integer]
	    max-user-rate [integer]
	    max-user-rate-pps [integer]
	    ip-tos [ integer | pass-through]
	    link-qos [integer | pass-through]
	    measure [ disabled ]
	    log-publisher [[string] | none]
	    log-period [integer]
	    categories [none] {
	       max-cat-rate [integer]
	       max-cat-rate-percentage [integer]
	       ip-tos [ integer | pass-through]
	       link-qos [integer | pass-through]
	       traffic-priority-map [string]
	    }
	    traffic-priority-map [string]

	edit policy [ [ [name] | [glob] | [regex] ] ... ]
	  options:
	    all-properties
	    non-default-properties

   DISPLAY
	list policy
	list policy [ [ [name] | [glob] | [regex] ] ... ]
	show running-config net policy
	show running-config net policy [ [ [name] | [glob] | [regex] ] ... ]
	  options:
	    all-properties
	    non-default-properties
	    one-line

   DELETE
	delete net policy [all | [name] ]

DESCRIPTION
       You can use the net bwc policy to create a bandwidth control policy to handle traffic flow, and then associate it with
       other components such as packet filter, iRule and virtual server. For details on packet filter, virtual server, please
       refer to the respective documentation.

EXAMPLES
       create net bwc policy

       Creates a bwc policy (see below).

       list net bwc policy all-properties

       Displays all of the properties of all of the bwc policies.

       delete net bwc policy

       Deletes a policy (see below).

       Example for static policy:

	net bwc policy silver_static_policy {
	       max-rate 120mbps
	}

       Example for dynamic policy:

	net bwc policy gold-dynamic-policy {
	   categories {
	       web {
		   description "This is a web test category."
		   max-cat-rate 600kbps
		   ip-tos 7
		   link-qos 5
	       }
	   }
	   description "This is a test."
	   dynamic enabled
	   max-rate 40gbps
	   max-user-rate 1gbps
	}

       Example for dynamic policy with measure enabled:

	net bwc policy gold-dynamic-policy {
	   categories {
	       web {
		   description "This is a web test category."
		   max-cat-rate 600kbps
		   ip-tos 7
		   link-qos 5
	       }
	   }
	   description "This is a test."
	   dynamic enabled
	   measure enabled
	   log_publisher /Common/my_log_publisher
	   log-period 2048
	   max-rate 40gbps
	   max-user-rate 1gbps
	}

       Example for BWC using packet filter:

	net bwc policy bwc {
	   max-rate 1mbps
	}

       Define packet filter with bwc on it:

	net packet-filter pfilter {
	   action continue
	   bwc policy bwc
	   logging enabled
	   order 2
	   rule ip
	}

       Example for BWC association with virtual server:

	ltm virtual l2-for-virtual {
	   destination 0.0.0.0:any
	   l2-forward
	   mask any
	   profiles {
	       fastL4 { }
	   }
	   rules {
	       bwc_test
	   }
	   translate-address disabled
	   translate-port disabled
	   vlans {
	       lan
	       wan
	   }
	   vlans-enabled
	}
	ltm virtual tcp-passthrough {
	   destination 0.0.0.0:http
	   ip-protocol tcp
	   mask any
	   profiles {
	       tcp { }
	   }
	   rules {
	       bwc_test
	   }
	   translate-address disabled
	   vlans-disabled
	}

       Example for Delete bwc policy:

	net bwc policy silver_static_policy

       Example for bwc policy traffic map:

	net bwc policy bwc-policy-105 {
	   categories {
	       cat1 {
		   max-cat-rate 10mbps
		   traffic-priority-map tc1->cat1
	       }
	       cat2 {
		   max-cat-rate 10mbps
		   traffic-priority-map tc1->cat2
	       }
	   }
	   dynamic enabled
	   max-rate 100mbps
	   max-user-rate 10mbps
	}

       Notes: Only static policies are supported for association with  packet filter or virtual server components.

OPTIONS
       app-service
	    Specifies the name of the application service to which the object belongs. The default value is none. Note: If the
	    strict-updates option is enabled on the application service that owns the object, you cannot modify or delete the
	    object. Only the application service can modify or delete the object.

       name Specifies a unique name for the policy. This option is required for the commands create, delete, and modify.

       description
	    User defined description.

       max-rate
	    Specifies the maximum bandwidth that traffic is allowed using the policy associated. The range is from 1Mbps to
	    320Gbps.

	    Valid units: bps(default), gbps, kbps, mbps.

       max-user-rate
	    Specifies the maximum bandwidth that traffic is allowed using the policy associated. The range is from 5kbps to 2Gbps.

	    Valid units: bps(default), gbps, kbps, mbps.

       max-user-rate-pps
	    Specifies the limiter in packets per second that traffic is allowed using the associated policy. This does not
	    allocate any fairshare bandwidth. When configured this acts purely as a simple packet limiter. It is packet size and
	    protocol agnostic. It can be configured only on a dynamic policy. When configured along with mbps values, whichever
	    lower limit pps vs mbps is applied. When configured, both need to pass for packets to go through. The default value is
	    0 (not configured).

       traffic-priority-map
	    Specifies the bwc priority-group to use during congestion. This is optional and to be configured only as needed.  A
	    bwc priority-group can be shared and amongst categories of the same bwc policy but not across bwc policies. When
	    configured on policy or category, the max-user-rate or max-cat-rate as configured would be additionally applied. Thus
	    the lower of all values for max. rates would take effect.

       max-cat-rate
	    Specifies the maximum bandwidth that traffic is allowed using this category with associated policy. The range is from
	    5Kbps to max-user-rate.

	    Valid units: bps(default), gbps, kbps, mbps.

       max-cat-rate-percentage
	    Specifies the percentage of the value of the max-cat-rate option of the category, which is associated with the net bwc
	    policy component to which this shaping policy is associated, that is available for this traffic flow. It is the
	    maximum bandwidth as percentage of  that traffic is allowed using this category with associated policy.
	    The range is from 1 to 100.

       dynamic
	    Specifies the type for policy to be dynamic type. This option is optional for the commands create, delete, and modify.
	    The default valid is disabled. When dynamic is disabled, the policy type is said to be static, where the maximum rate
	    is enforced for combined traffic using the policy and no fairness bandwidth guarantee for each of the traffic
	    respectively. The default value is: disabled.  Note: policy type change modification is a disallowed configuration.

	    By enabling this option, the policy is dynamic type and requires you to configure max-user-rate-range. This type of
	    policy enforces fairness for all the traffic associated with the policy and also for each traffic within the policy.

       ip-tos
	    Specifies an IP ToS number for the traffic using the net bwc policy. This option specifies the ToS level that the
	    traffic management system assigns to UDP packets when sending them. The default value is pass-through, which
	    indicates, do not modify UDP packets. The valid range for IP ToS value that can be specified is 0 to 63.

	    Note:  If this is specified, bandwidth policy is not enforced. The packets are just marked for a downstream system to
	    process.

       link-qos
	    Specifies a Link QoS (VLAN priority) for the traffic using the net bwc policy. This option specifies the QoS level
	    that the system assigns to UDP packets when sending. The default value is pass-through, which indicates, do not modify
	    UDP packets. The valid range for QoS value is 0 to 7.

	    Note:  If this is specified, bandwidth policy is not enforced. The packets are just marked for a downstream system to
	    process.

       measure
	    Enables or disables bandwidth measurement on all the future instances of bwc policy. Users can override this setting
	    using iRules. If enabling measurement on all instances is not desired then users can keep this setting disabled and
	    use iRules to enable measurement on specific instances of bwc policy.

       log_publisher
	    Specifies the name of the log publisher configured in the system. Bandwidth measurement results will be sent to this
	    log publisher.

       log_period
	    Time interval in milliseconds representing the frequency of generation of bandwidth measurement logs.

       categories
	    This specifies the categories under policy. Note: policy need to be enabled as dynamic to configure categories. Up to
	    a maximum of 32 categories can be configured. All the categories under the dynamic policy share the bandwidth as
	    specified for the category, up to a maximum of max-user-rate.  Specify the maximum bandwidth for the category of
	    traffic using max-cat-rate or by max-cat-rate-percentage as a percentage of the maximum user rate. Either only the
	    range or absolute value is required.

	    Example to configure a dynamic bandwidth policy category using tmsh:

	      root@(localhost)(cfg-sync
		    Standalone)(Active)(/Common)(tmos.net.bwc policy.gold-dynamic-policy)# categories add { web { max-cat-rate 600kbps } }

	      net bwc policy gold-dynamic-policy {
		categories {
		    web {
			max-cat-rate 600kbps
		    }
		}
		dynamic enabled
		max-rate 40gbps
		max-user-rate 1gbps
	      }

	    The parameters for dynamic policy and categories:

	      net bwc policy test-policy {
		app-service none
		categories {
		    web {
			app-service none
			description "This is a web test cat"
			max-cat-rate 600kbps
			max-cat-rate-percentage 0
			ip-tos 6
		    }
		}
		description "This is a test"
		dynamic enabled
		ip-tos pass-through
		link-qos pass-through
		max-rate 40gbps
		max-user-rate 1gbps
		measure enabled
		log-publisher /Common/my_log_publisher
		log-period 2048
		partition Common
	      }

Few Examples using iRule:
       Please refer to iRule documentation for complete list of bwc commands. Below are few examples and do not cover all cases.

       Example to associate static bwc policy using iRule:

	 when CLIENT_ACCEPTED {
	       BWC::policy attach silver_static_policy
	 }

       Example to associate dynamic bwc policy using iRule:

	 when CLIENT_ACCEPTED {
	       set mycookie [IP::remote_addr]
	       BWC::policy attach gold-dynamic-policy $mycookie
	 }

       Example for bwc policy to mark traffic flows using iRule:

	 BWC::mark   > >

       So to assign a policy, color, and mark here is an example rule

	 when CLIENT_ACCEPTED {
	   set mycookie [IP::remote_addr]:[TCP::remote_port]
	   BWC::policy attach gold_user $mycookie
	   BWC::color set gold_user p2p
	   BWC::mark set gold_user tos 8 qos 4
	 }

       Example for using bwc policy category to color a flow using iRule:

       After a flow has been assigned a policy, at some later time when the traffic is classified the user can assign an
       application to this flow. This uses the bwc config to create a bwc policy with the categories keyword: for example, p2p
       category below:

       tmsh create net bwc policy gold_user categories add { p2p { max-cat-rate 8mbps } } max-rate 10mbps max-user-rate 10mbps
       dynamic enabled

       The rule args

	 BWC::color   

       So to assign a policy and color here is an example rule

	 when CLIENT_ACCEPTED {
	   set mycookie [IP::remote_addr]:[TCP::remote_port]
	   BWC::policy attach gold_user $mycookie
	   BWC::color set gold_user p2p
	 }

       Example for bwc policy rate change using iRule:

       After a policy is created, irule can modify the rate for a session or category

       The rule args

	 BWC::rate  

	 BWC::rate   

       So to modify the rate

	 when CLIENT_ACCEPTED {
	   set mycookie [IP::remote_addr]:[TCP::remote_port]
	   BWC::policy attach gold_user $mycookie
	   BWC::color set gold_user p2p
	   BWC::mark set gold_user tos 8 qos 4
	   BWC::rate $mycookie p2p 1000000bps
	 }

       Example for bwc policy to measure the bandwidth using iRule:

       BWC::measure << |  | >
		      [session_str]>

       To start the bandwidth measurement for BWC policy

	 when CLIENT_ACCEPTED {
	   set mycookie [IP::remote_addr]:[TCP::remote_port]
	   BWC::policy attach gold_user $mycookie
	   BWC::measure start session
	 }

       The above iRule will start the measurement of bandwidth on the gold_user policy instance. The results will be published to
       the destination specified in the log_publisher setting for the gold_user bwc policy. The measurement results will be logged
       every 'log_period' amount of time, which is also specified in the policy settings for gold_user.

       Note: Attaching a BWC policy is a pre-requisite for all 'BWC::measure.' iRules.	Failing to do so will result in the iRule
       execution failure which in turn will abort the connection.

       To start the bandwidth measurement for a flow inside a BWC policy and tag the results.

	 when CLIENT_ACCEPTED {
	   set mycookie [IP::remote_addr]:[TCP::remote_port]
	   BWC::policy attach gold_user $mycookie
	   BWC::measure identifier MYFLOW flow
	   BWC::measure start flow
	 }

       The above iRule will start the measurement of bandwidth on the current flow or the flow over which the current iRule is
       running. The results will be published to the destination specified in the log_publisher setting for the gold_user bwc
       policy. The measurement results will be logged every 'log_period' amount of time, which is also specified in the policy
       settings for gold_user. Every log message containing the bandwidth result will carry the tag 'MYFLOW'. This helps identify
       different types of bandwidth results when analyzing the bandwidth measurement results.

       To start the bandwidth measurement for a BWC session and get the periodic results.

	 when CLIENT_ACCEPTED {
	   set mycookie [IP::remote_addr]:[TCP::remote_port]
	   set measureID "MYSESSION"
	   BWC::policy attach gold_user $mycookie
	   BWC::measure identifier $measureID session
	   BWC::measure start session
	 }

	 when SERVER_CONNECTED {
	   TCP::collect
	   set count 0
	 }

	 when SERVER_DATA {
	     if {$count >= 1000 } {
		 set rate [BWC::measure get rate session]
		 set bytes [BWC::measure get bytes session]

		 log local0. "Rate $rate/sec : Bytes $bytes : for address $mycookie"
		 set count 0
	     }
	     TCP::release
	     TCP::collect
	     incr count
	 }

       The above example creates an instance of BWC policy gold_user and enables measurement on it upon the iRule event
       CLIENT_ACCEPTED. It also starts collecting so that it keeps getting notified upon the data arrival.  For every 1000 packets
       a measurement of bandwidth is logged. This is an example that illustrates how to measure bandwidth periodically using
       iRules.	Note that the bandwidth measurement results are still sent to configured log_publisher at every log_period
       interval.

       An example log message that is sent to a log publisher.

       Apr  2 16:29:04 MYSESSION BWC Measurement: Moving average - 539277 bytes/sec. Total bytes - 7305051

       Example for bwc policy using pps:

       BWC::pps  

	 when CLIENT_ACCEPTED {
	   set mycookie [IP::remote_addr]:[TCP::remote_port]
	   BWC::policy attach gold_user $mycookie
	   BWC::pps 100
	 }

SEE ALSO
       create, delete, edit, glob,   list, modify, regex, show, tmsh

COPYRIGHT
       No part of this program may be reproduced or transmitted in any form or by any means, electronic or mechanical, including
       photocopying, recording, or information storage and retrieval systems, for any purpose other than the purchaser's personal
       use, without the express written permission of F5 Networks, Inc.

       F5 Networks and BIG-IP (c) Copyright 2011-2016. All rights reserved.

BIG-IP							    2017-05-18						 net bwc policy(1)