En esta entrada se muestra el código fuente del script ToSCalc.py con el que calcular los distintos valores ToS y DSCP para configuraciones de calidades de servicio.
Sintaxis: ./TosCalc.py VALUE
VALUE corresponde a los posibles valores configurables dentro del campo IP Precedence o Class Selectors para la priorización de tráfico en las redes IP.
Código fuente:
En la siguiente entrada hay información sobre el mismo así como algunas pruebas multiplataforma.#!/usr/bin/env python # # Name: ToSCalc.py # Description: Calculate ToS and DSCP values for IP Precedence # or Class Selector argument. # Author: Brixton Cat # Date: 10 Mar 2012 # Version: 0.1 # Sintax: ./ToSCalc.py VALUE # ### Dependencies import sys ### Functions def Arguments(decimal): """ This function check the introduced argument and call ThreeBits function if the value is correct """ # If not valid value, exit of script if decimal < 1 or decimal > 7: print "ERROR: %d not valid CS or IP Precedence value" % \ decimal sys.exit(1) else: ThreeBits(decimal) def ThreeBits(decimal): """ This function convert decimal argument to a 3 bits value and check correct lenght of this """ # Array ['0', 'value'] bina = bin(decimal).split('b') # If less of 3 bits, add 0s to left of binary variable if bina[1] < "3": rest = 3 - len(bina[1]) binary = str(0) * rest + bina[1] else: binary = bina[1] # Run SixBits functions SixBits(decimal, binary) def EightBits(decimal, binary, dscpb, dscpd): """ This function add 0s to right of tosb variable and run Results function with all prints values """ # Rest of 8 and binary lenght rest = 8 - len(binary) # Type of Service binary value tosb = binary + str(0) * rest # Type of Service decimal value tosd = int(tosb, 2) # Call Results function with all values Results(decimal, binary, dscpb, dscpd, tosb, tosd) def Main(): """ Declare decimal variable and run Arguments function with this value """ # Fisrt argument of the script decimal = int(sys.argv[1]) # Run Arguments functions Arguments(decimal) def Results(decimal, binary, dscpb, dscpd, tosb, tosd): """ Prints values relationated with IP Precedence or Class Selectors introduced argument""" # Header print "Value 3bits DSCP Bin DSCP ToS Bin ToS" print "----- ----- -------- ---- ------- ---" # Values print " %d\t%s\t%s\t %d\t%s %d" % \ (decimal, binary, dscpb, dscpd, tosb, tosd) def SixBits(decimal, binary): """ This function add 0s to right of dscpb variable and calculate their decimal value """ # DSCP binary value dscpb = binary + str(0) * 3 # DSCP decimal value dscpd = int(dscpb, 2) # Run EightBits function EightBits(decimal, binary, dscpb, dscpd) ### Script Main() ### Exit # Exit Codes # 0 -> Normal exit # 1 -> No valid argument sys.exit(0) #EOF ##FVE
Un saludo, Brixton Cat.
No hay comentarios:
Publicar un comentario
Bienvenid= si quieres dejar un comentario