def TestCaseSetup(tc): global ipseccbq global ipseccb global rnmdr global iv global seq tc.pvtdata = ObjectDatabase() tc.pvtdata.seqNo = 0 print("TestCaseSetup(): Sample Implementation.") # 2. Clone objects that are needed for verification rnmdr = copy.deepcopy(tc.infra_data.ConfigStore.objects.db["IPSEC_RNMDR"]) rnmdr.GetMeta() rnmdr.GetRingEntries([rnmdr.pi, rnmdr.pi + 1]) rnmdr.GetRingEntryAOL([rnmdr.pi, rnmdr.pi + 1]) id = ProxyCbServiceHelper.GetFlowInfo(tc.config.flow._FlowObject__session) IpsecCbHelper.main(id) ipsecid = "IPSECCB%04d" % id ipseccb = tc.infra_data.ConfigStore.objects.db[ipsecid] ipsec_cbq_id = ipsecid + "_IPSECCBQ" ipseccbq = copy.deepcopy( tc.infra_data.ConfigStore.objects.db[ipsec_cbq_id]) ipseccb = tc.infra_data.ConfigStore.objects.db[ipsecid] rnmpr = copy.deepcopy(tc.infra_data.ConfigStore.objects.db["IPSEC_RNMPR"]) rnmpr.GetMeta() rnmpr.GetRingEntries([rnmpr.pi]) tnmdr = copy.deepcopy(tc.infra_data.ConfigStore.objects.db["IPSEC_TNMDR"]) tnmdr.GetMeta() tnmdr.GetRingEntries([tnmdr.pi]) tnmpr = copy.deepcopy(tc.infra_data.ConfigStore.objects.db["IPSEC_TNMPR"]) tnmpr.GetMeta() tnmpr.GetRingEntries([tnmpr.pi]) brq = copy.deepcopy( tc.infra_data.ConfigStore.objects.db["BRQ_ENCRYPT_GCM"]) brq.GetMeta() brq.GetRingEntries([brq.pi]) iv = ipseccb.iv seq = ipseccb.esn_lo tc.pvtdata.Add(rnmdr) tc.pvtdata.Add(rnmpr) tc.pvtdata.Add(tnmdr) tc.pvtdata.Add(tnmpr) tc.pvtdata.Add(brq) return
def TestCaseSetup(tc): global ipseccbq global ipseccb global rnmdr global iv global seq tc.pvtdata = ObjectDatabase() print("TestCaseSetup(): Sample Implementation.") # 1. Configure IPSECCB in HBM before packet injection id = ProxyCbServiceHelper.GetFlowInfo(tc.config.flow._FlowObject__session) IpsecCbHelper.main(id) ipsecid = "IPSECCB%04d" % id ipseccb = tc.infra_data.ConfigStore.objects.db[ipsecid] key_type = types_pb2.CRYPTO_KEY_TYPE_AES128 key_size = 16 key = b'\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc\xcc' sip6 = b'\x20\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaa\xaa' dip6 = b'\x20\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\xbb' ipseccb.crypto_key.Update(key_type, key_size, key) ipseccb.tunnel_sip4 = 0x0A010001 ipseccb.tunnel_dip4 = 0x0A010002 ipseccb.iv_size = 8 ipseccb.icv_size = 16 ipseccb.block_size = 16 ipseccb.key_index = 0 ipseccb.barco_enc_cmd = 0x30000000 ipseccb.iv = 0xaaaaaaaaaaaaaaaa ipseccb.iv_salt = 0xbbbbbbbb ipseccb.esn_hi = 0 ipseccb.esn_lo = 0 ipseccb.spi = 0 ipseccb.is_nat_t = 0 ipseccb.is_v6 = 0 ipseccb.key_index = ipseccb.crypto_key.keyindex ipseccb.sip6.ip_af = 2 ipseccb.sip6.v6_addr = sip6 ipseccb.dip6.ip_af = 2 ipseccb.dip6.v6_addr = dip6 ipseccb.SetObjValPd() # 2. Clone objects that are needed for verification rnmdr = copy.deepcopy(tc.infra_data.ConfigStore.objects.db["IPSEC_RNMDR"]) rnmdr.GetMeta() rnmdr.GetRingEntries([rnmdr.pi, rnmdr.pi + 1]) rnmdr.GetRingEntryAOL([rnmdr.pi, rnmdr.pi + 1]) ipsec_cbq_id = ipsecid + "_IPSECCBQ" ipseccbq = copy.deepcopy( tc.infra_data.ConfigStore.objects.db[ipsec_cbq_id]) ipseccb = tc.infra_data.ConfigStore.objects.db[ipsecid] rnmpr = copy.deepcopy(tc.infra_data.ConfigStore.objects.db["IPSEC_RNMPR"]) rnmpr.GetMeta() rnmpr.GetRingEntries([rnmpr.pi]) tnmdr = copy.deepcopy(tc.infra_data.ConfigStore.objects.db["IPSEC_TNMDR"]) tnmdr.GetMeta() tnmdr.GetRingEntries([tnmdr.pi]) tnmpr = copy.deepcopy(tc.infra_data.ConfigStore.objects.db["IPSEC_TNMPR"]) tnmpr.GetMeta() tnmpr.GetRingEntries([tnmpr.pi]) brq = copy.deepcopy( tc.infra_data.ConfigStore.objects.db["BRQ_ENCRYPT_GCM"]) brq.GetMeta() brq.GetRingEntries([brq.pi]) iv = ipseccb.iv seq = ipseccb.esn_lo tc.pvtdata.Add(rnmdr) tc.pvtdata.Add(rnmpr) tc.pvtdata.Add(tnmdr) tc.pvtdata.Add(tnmpr) tc.pvtdata.Add(brq) return