p.protocol_id.id = ost_pb.Protocol.kIp4FieldNumber # reduce typing by creating a shorter reference to p.Extensions[ip4] ip = p.Extensions[ip4] ip.src_ip = 0x01020304 ip.dst_ip = 0x05060708 ip.dst_ip_mode = Ip4.e_im_inc_host s.protocol.add().protocol_id.id = ost_pb.Protocol.kUdpFieldNumber s.protocol.add().protocol_id.id = ost_pb.Protocol.kPayloadFieldNumber log.info('configuring tx_stream %d' % stream_id.stream_id[0].id) drone.modifyStream(stream_cfg) # clear tx/rx stats log.info('clearing tx/rx stats') drone.clearStats(tx_port) drone.clearStats(rx_port) # ----------------------------------------------------------------- # # TESTCASE: Verify a RPC with missing required fields in request fails # and subsequently passes when the fields are initialized # ----------------------------------------------------------------- # passed = False suite.test_begin('rpcWithMissingRequiredFieldsFails') pid = ost_pb.PortId() try: sid_list = drone.getStreamIdList(pid) except RpcError as e: if ('missing required fields in request' in str(e)): passed = True log.info("Retrying RPC after adding the missing fields")
ip.dst_ip = 0xc0a83866 # NEW - Setup icmp p = s.protocol.add() p.protocol_id.id = ost_pb.Protocol.kIcmpFieldNumber icmp = p.Extensions[icmp] icmp.type = 8 icmp.code = 0 s.protocol.add().protocol_id.id = ost_pb.Protocol.kPayloadFieldNumber log.info('configuring tx_stream %d' % stream_id.stream_id[0].id) drone.modifyStream(stream_cfg) # clear tx/rx stats log.info('clearing tx/rx stats') drone.clearStats(tx_port) drone.clearStats(rx_port) # start capture and transmit log.info('starting capture') drone.startCapture(rx_port) log.info('starting transmit') drone.startTransmit(tx_port) # wait for transmit to finish log.info('waiting for transmit to finish ...') time.sleep(7) # stop transmit and capture log.info('stopping transmit') drone.stopTransmit(tx_port)