summaryrefslogtreecommitdiff
path: root/maximus/python/lib
diff options
context:
space:
mode:
authorronciere2008-02-29 15:27:25 +0000
committerronciere2008-02-29 15:27:25 +0000
commitb1915c0673f93ecec92c497c318935a61323168b (patch)
treed9e057e9fab0df372218a40db93bcdb63e6dce66 /maximus/python/lib
parent7e75f615519d81c16c3b41f75938c06626e3572a (diff)
Add missing files
git-svn-id: svn+ssh://pessac/svn/cesar/trunk@1520 017c9cb6-072f-447c-8318-d5b54f68fe89
Diffstat (limited to 'maximus/python/lib')
-rw-r--r--maximus/python/lib/framming.py45
-rw-r--r--maximus/python/lib/macFrame.py126
2 files changed, 171 insertions, 0 deletions
diff --git a/maximus/python/lib/framming.py b/maximus/python/lib/framming.py
new file mode 100644
index 0000000000..8f86665aca
--- /dev/null
+++ b/maximus/python/lib/framming.py
@@ -0,0 +1,45 @@
+# -*- coding:Utf-8 -*-
+
+import sys
+sys.path.append('./test')
+sys.path.append('../test')
+import startup
+
+#from maximus import *
+#import unittest
+#from interface import *
+
+##print "Instantiate a Maximus object and initialize it."
+#maximus = Maximus()
+#maximus.init(sys.argv)
+##print "Create a station."
+#myStaA = maximus.create_sta()
+##print "Set tonemask"
+#fcall1 = maximus.create_fcall('set_tonemask')
+#fcall1.send(myStaA)
+
+from binascii import * #binascii library is used : crc32(),
+
+from macFrame import *
+myMacFields = MacFields()
+
+#print "Create MME Header"
+myMmHeader = MMHeader()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/maximus/python/lib/macFrame.py b/maximus/python/lib/macFrame.py
new file mode 100644
index 0000000000..a604500bae
--- /dev/null
+++ b/maximus/python/lib/macFrame.py
@@ -0,0 +1,126 @@
+# -*- coding:Utf-8 -*-
+
+#from maximus import *
+#import unittest
+from interface import *
+
+from mmentryMethod import *
+mmentryMethod = MmentryMethod()
+from fcVfFields import *
+myFcVfFields = FcVfFields()
+
+
+#print "Create MAC Frame Header"
+myMacFrameHeader = MACFrameHeader()
+myMacFrame = MACFrame()
+
+#print "Instantiate a Maximus object and initialize it."
+maximus = Maximus()
+maximus.init(sys.argv)
+#print "Create a station."
+myStaA = maximus.create_sta()
+# Enable channel perturbation (To work with test_tx_rx station)
+#maximus.disturb_channel()
+#myStaA.debug()
+#print "Set tonemask"
+fcall1 = maximus.create_fcall('set_tonemask')
+fcall1.send(myStaA)
+
+#print "Send an MPDU containing one PB of 128 octets"
+def create_fcall_128():
+ #print "Create a fcall for an MPDU containing one PB of 128 octets"
+ fc_mode = 2 # PHY_FC_MODE_AV_1
+ short_ppdu = False
+ mod = 2 # PHY_MOD_MINI_ROBO
+ fecrate = 0 # PHY_FEC_RATE_1_2
+ pb_size = 0 # PHY_PB_SIZE_136
+ gil = 1 # PHY_GIL_567
+ pb_nb = 1
+ fcall_128 = maximus.create_fcall('prepare_rx')
+ fcall_128.add_param_ushort("fc_mode", fc_mode)
+ fcall_128.add_param_bool("short_ppdu", short_ppdu)
+ fcall_128.add_param_ushort("mod", mod)
+ fcall_128.add_param_ushort("fecrate", fecrate)
+ fcall_128.add_param_ushort("pb_size", pb_size)
+ fcall_128.add_param_ushort("gil", gil)
+ fcall_128.add_param_ushort("pb_nb", pb_nb)
+ return fcall_128
+
+# Send an MPDU containing "myPbNum" PBs of 512 octets
+def create_fcall_512(myPbNum = 1):
+ # Create a fcall for an MPDU containing "myPbNum" PBs of 512 octets
+ fc_mode = 2 # PHY_FC_MODE_AV_1
+ short_ppdu = False
+ mod = 3 # PHY_MOD_TM
+ fecrate = 0 # PHY_FEC_RATE_1_2
+ pb_size = 1 # PHY_PB_SIZE_520
+ gil = 1 # PHY_GIL_567
+ pb_nb = myPbNum
+ fcall_512 = maximus.create_fcall('prepare_rx')
+ fcall_512.add_param_ushort("fc_mode", fc_mode)
+ fcall_512.add_param_bool("short_ppdu", short_ppdu)
+ fcall_512.add_param_ushort("mod", mod)
+ fcall_512.add_param_ushort("fecrate", fecrate)
+ fcall_512.add_param_ushort("pb_size", pb_size)
+ fcall_512.add_param_ushort("gil", gil)
+ fcall_512.add_param_ushort("pb_nb", pb_nb)
+ return fcall_512
+
+#macFields fill all fields existing in MAC Frame
+class MacFields():
+
+ #MAC Frame
+
+ def createMacFrame(self, myOda=staAAddress, myOsa=maxAddress, myVlanTag=0, myMtype=0xe188, myMmv=0, myMmtype=mmentryMethod.mmentryFields.mmtype, myNfmi=None, myFnMi=None, myFmsn=0, myMmentry=None, myEncapsulatedMmEntry=None, myFc_AV=None, myDt_AV=1, myAccess=None, mySnid=None, myDt_AVAccessSnid=None, myBts=None, myBto_0=None, myBto_1=None, myBto_2=None, myBto_3=None, myBvf=None, myStei=None, myDtei=None, myLid=None, myCfs=None, myBdf=None, myHp10df=None, myHp11df=None, myEks=None, myPpb=None, myBle=None, myPbSz=None, myNumSym=None, myTmi_AV=None, myFl_AV=None, myMpduCnt=None, myBurstCnt=None, myBbf=None, myMrtfl=None, myDcppcf=None, myMcf=None, myMnbf=None, myRsr=None, myClst=None, myMfsCmdMgmt=None, myMfsCmdData=None, myMfsRspMgmt=None, myMfsRspData=None, myBm_SACKI=None, mySofvf=None, mySvn=None, myRrtf=None, mySackt0=None, mySackt1=None, mySackt2=None, mySackt3=None, mySackiPad=None, myRxwsz=None, myRrtl=None, mySackvf=None, myRtsf=None, myIgf=None, myDurNRsvd=None, myRtsctsvf=None, mySaf=None, myScf=None, myReq_TM=None, mySrc=None, mySoundvf=None, myShortPad=True, myRsof_fl_AV=None, myRsofvf=None, myFccs_AV=None, myIv_SOF=None):
+ if myMmentry == None:
+ myMmentry = mmentryMethod.mmentryFields.mmentry
+ thisNfmi = (len(myMmentry)-1)/1492
+ thisFnMi = 0
+ rspu = ""
+ while thisFnMi<=thisNfmi:
+ myEncapsulatedMme.createEncapsulatedMmEntry(myOda, myOsa, myVlanTag, myMtype, myMmv, myMmtype, myNfmi, myFnMi, myFmsn, myMmentry, myEncapsulatedMmEntry, thisFnMi)
+ myMacFrameHeader.set_mft(mmeMft)
+ myMacFrameHeader.set_mfl(min(mmentryMethod.mmentryFields.mmeMfl,1518))
+ if mmentryMethod.mmentryFields.mmeMfl<=122:
+ fcall_128 = create_fcall_128()
+ fcall_128.send(myStaA)
+ else:
+ fcall_512 = create_fcall_512(int(((min(mmentryMethod.mmentryFields.mmeMfl,1518)-1)/506)+1))
+ fcall_512.send(myStaA)
+ mmentryMethod.mmentryFields.mmeMfl = mmentryMethod.mmentryFields.mmeMfl-1492
+ myMacFrame.set_macframeheader(myMacFrameHeader)
+ myMacFrame.set_ats(None)
+ confunder = randrange(0,pow(2,32)-1,1)
+ myMacFrame.set_msdu(myMme)
+ myMacFrame.set_confounder(confunder)
+ icv = unpack('I',pack('i',crc32(myMacFrame.get_msdu())))[0]
+ myMacFrame.set_icv(icv)
+ myFcVfFields.createFc_AV(myFc_AV, myDt_AV, myAccess, mySnid, myDt_AVAccessSnid, myBts, myBto_0, myBto_1, myBto_2, myBto_3, myBvf, myStei, myDtei, myLid, myCfs, myBdf, myHp10df, myHp11df, myEks, myPpb, myBle, myPbSz, myNumSym, myTmi_AV, myFl_AV, myMpduCnt, myBurstCnt, myBbf, myMrtfl, myDcppcf, myMcf, myMnbf, myRsr, myClst, myMfsCmdMgmt, myMfsCmdData, myMfsRspMgmt, myMfsRspData, myBm_SACKI, mySofvf, mySvn, myRrtf, mySackt0, mySackt1, mySackt2, mySackt3, mySackiPad, myRxwsz, myRrtl, mySackvf, myRtsf, myIgf, myDurNRsvd, myRtsctsvf, mySaf, myScf, myReq_TM, mySrc, mySoundvf, myShortPad, myRsof_fl_AV, myRsofvf, myFccs_AV, myIv_SOF)
+ myMacFrame.set_iv(myFcVfFields.iv_SOF) #IV_SOF NOT IV !!!
+ myMacFrame.set_nek(myFcVfFields.nekField)
+ myMacFrame.send(maximus)
+ rspc = recv(maximus) #PB Objects list
+ rspc = rspc[0].get_pblist()
+ receivedPbNum = len(rspc)
+ rspt = ""
+ i=0
+ while i<receivedPbNum:
+ rspt = rspt + rspc[i]
+ i=i+1
+ rspc = rspt[:int(unpack('H',rspt[0:2])[0]/4)+6+1-4]
+ maximus.wait(100000)
+ rspuH = rspc[:29]
+ rspu = rspu + rspc[29:]
+ thisFnMi = thisFnMi + 1
+ return rspuH + rspu
+
+
+
+
+
+
+
+
+
+
+