-
Notifications
You must be signed in to change notification settings - Fork 2
/
policy_inputs.py
51 lines (35 loc) · 1.69 KB
/
policy_inputs.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#Module which is used to load and execute the policies.
#Simulates ACL which is implemented by the administrator.
######################################################
# Match = Match condition(s) for the policy.
# Priority = Policy priority in range 1-20, where 1 is the highest priority
# Action: What action(s) the policy should execute
##########################################################
# bandwidth_requirement: The flows minimum bandwidth requirement
# bandwidth_requirement_strict : bandwidth_requirement_strict
# allow_load_balance : Allows the flow to be traffic loaded in order to achieve bandwidth limits
# block : Blocks the flow
# traffic_class : What traffic class the flow should use, based on the links bandwidths. 1-3 where 1 is the best class
# random_routing: Applies random routing of the flow
###########################################################
import policy_manager
def generate_policies():
policy001 = policy_manager.Policy()
policy001.match(ip_src="10.10.10.106")
policy001.action(bandwidth_requirement=2, random_routing=True)
policy001.priority(2)
policy002 = policy_manager.Policy()
policy002.match(ip_src="10.10.10.104")
policy002.action(bandwidth_requirement=2, traffic_class=1, random_routing=True)
policy002.priority(3)
policy003 = policy_manager.Policy()
policy003.match(ip_src="10.10.10.105")
policy003.action(bandwidth_requirement=3)
policy003.priority(2)
policy004 = policy_manager.Policy()
policy004.match(ip_src="10.10.10.199")
policy004.action(bandwidth_requirement=2)
policy004.priority(1)
policy_list = [policy001, policy002, policy003, policy004]
return policy_list
generate_policies()