added test rules
diff --git a/scripts/test_rules/adc_rules.py b/scripts/test_rules/adc_rules.py
new file mode 100755
index 0000000..f5031e2
--- /dev/null
+++ b/scripts/test_rules/adc_rules.py
@@ -0,0 +1,152 @@
+#!/usr/bin/python
+#coding: utf8
+#Copyright © 2016 - 2017 Copyright (c) Sprint, Inc. and others. All rights
+#reserved.
+#
+#This program and the accompanying materials are made available under the
+#terms of the Eclipse Public License v1.0 which accompanies this distribution,
+#and is available at http://www.eclipse.org/legal/epl-v10.html
+#
+############################################################################
+# File : adc_rules.py
+#
+# Comments :
+# Read ADC Rules config file from './config/' and get parameters
+# values as per the ADC Rule Table.
+# As per ADC Rule table, formed a structure and parse values in struct,
+# and finally pack a struct and send over the zmq(PUB/SUB) socket to DP.
+#
+# Reference : message_sdn_dp.docx
+# Section : Table No.11 ADC Rule
+##############################################################################
+import sys
+import os
+import time
+import struct
+import socket
+
+from configparser import ConfigParser
+
+parser = ConfigParser()
+
+# Covert the string into num and stored into usigned 32 bit integer.
+def name_to_num(name):
+ num = 0
+ for ch in name[::-1]:
+ num = (num << 4) | (ord(ch) - ord('a'))
+ return num & 0xffffffff
+
+def parse_adc_values(pub_socket,topicId):
+ parser.read('./config/adc_rules.cfg')
+ print "\n ---> Reading Values from ADC rules file <---"
+ print "\n ---> Sending ADC rules <---"
+ MSG_TYPE = 17
+
+ # Create a structure for ADC rule and parse values in that.
+ for val in parser.sections():
+ if val != 'GLOBAL':
+ # TBD: Need to handle exception
+ ADC_TYPE = int(parser.get(val, 'ADC_TYPE'))
+ if ADC_TYPE == 0:
+ DOMAIN = str(parser.get(val, 'DOMAIN'))
+ if ADC_TYPE == 1:
+ IP = struct.unpack('!L', \
+ socket.inet_aton(str(parser.get(val, \
+ 'IP'))))
+ if ADC_TYPE == 2:
+ IP = struct.unpack('!L', \
+ socket.inet_aton(str(parser.get(val, \
+ 'IP'))))
+ PREFIX = int(parser.get(val, 'PREFIX'))
+
+ GATE_STATUS = int(parser.get(val, 'GATE_STATUS'))
+ RATING_GROUP = name_to_num(str(parser.get(val, \
+ 'RATING_GROUP')))
+ SERVICE_ID = name_to_num(str(parser.get(val, \
+ 'SERVICE_ID')))
+ PRECEDENCE = int(parser.get(val, 'PRECEDENCE'))
+ MTR_PROFILE_INDEX = int(parser.get(val, \
+ 'MTR_PROFILE_INDEX'))
+ SPONSOR = str(parser.get(val, 'SPONSOR'))
+
+ #TBD:: Need to handle exception
+ # Pack the structure and send over the zmq socket to DP
+ time.sleep(1)
+ if ADC_TYPE == 0:
+ pub_socket.send("%s" % (struct.pack('!BBBB'+ \
+ str(len(DOMAIN))+'sBLLLHB'+\
+ str(len(SPONSOR))+'s', \
+ topicId, MSG_TYPE, ADC_TYPE, \
+ len(DOMAIN), DOMAIN, \
+ GATE_STATUS, RATING_GROUP, \
+ SERVICE_ID, PRECEDENCE, \
+ MTR_PROFILE_INDEX, \
+ len(SPONSOR), SPONSOR)))
+ time.sleep(1)
+
+ print "\nADC Rule Values for ::\
+ \nADC_TYPE :%s \nDOMAIN :%s\
+ \nGATE_STATUS :%s\
+ \nrating group :%s \
+ \nSERVICE_ID :%s \
+ \nPRECEDENCE :%s \
+ \nMTR_PROFILE_INDEX :%s\
+ \nSPONSOR_LEN :%s\
+ \nSPONSOR :%s" % \
+ (ADC_TYPE, DOMAIN, GATE_STATUS,\
+ RATING_GROUP, SERVICE_ID, \
+ PRECEDENCE, MTR_PROFILE_INDEX, \
+ len(SPONSOR), SPONSOR)
+
+ if ADC_TYPE == 1:
+ pub_socket.send("%s" % (struct.pack('!BBBLBLLLHB'+\
+ str(len(SPONSOR))+'s',topicId, \
+ MSG_TYPE, ADC_TYPE, IP[0], \
+ GATE_STATUS, RATING_GROUP, \
+ SERVICE_ID, PRECEDENCE, \
+ MTR_PROFILE_INDEX, \
+ len(SPONSOR), SPONSOR)))
+
+ print "\nADC Rule Values for ::\
+ \nADC_TYPE :%s \nIP :%s \
+ \nGATE_STATUS :%s\
+ \nRATING_GROUP :%s\
+ \nSERVICE_ID :%s\
+ \nPRECEDENCE :%s\
+ \nMTR_PROFILE_INDEX :%s\
+ \nSPONSOR_LEN :%s \
+ \nSPONSOR :%s" % \
+ (ADC_TYPE, IP[0], GATE_STATUS,\
+ RATING_GROUP, SERVICE_ID, \
+ PRECEDENCE, MTR_PROFILE_INDEX, \
+ len(SPONSOR), SPONSOR)
+
+ if ADC_TYPE == 2:
+ pub_socket.send("%s" % (struct.pack('!BBBLHBL\
+ LLHB'+str(len(SPONSOR))+'s', \
+ topicId, MSG_TYPE, ADC_TYPE, \
+ IP[0], PREFIX, GATE_STATUS, \
+ RATING_GROUP, SERVICE_ID, \
+ PRECEDENCE, MTR_PROFILE_INDEX, \
+ len(SPONSOR), SPONSOR)))
+
+ print "\nADC Rule Values for ::\
+ \nADC_TYPE :%s \nIP :%s \
+ \nPREFIX :%s\nGATE_STATUS :%s \
+ \nRATING_GROUP:%s \
+ \nSERVICE_ID :%s\
+ \nPRECEDENCE :%s \
+ \nMTR_PROFILE_INDEX :%s\
+ \nSPONSOR_LEN :%s\
+ \nSPONSOR :%s"\
+ % (ADC_TYPE, IP[0], \
+ PREFIX, GATE_STATUS, \
+ RATING_GROUP, SERVICE_ID, \
+ PRECEDENCE, MTR_PROFILE_INDEX, \
+ len(SPONSOR), SPONSOR)
+
+
+ time.sleep(1)
+ print '\n ---># ADC Rule Successfully sent...#<---\n'
+ parser.clear()
+