aboutsummaryrefslogtreecommitdiffstats
path: root/tests/perf/10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrchk.robot
AgeCommit message (Collapse)AuthorFilesLines
2017-06-05CSIT-524: Traffic generator using python profilesTibor Frank1-9/+13
Profile name structure: [trex|ixia]-[sl|sf]-[topo]-[packet structure]-[scale] - Traffic generator - T-rex (trex) or Ixia (ixia) - Stateless (sl) or statefull (sf) - Topology - 2-node topology (2n) or 3-node topology (3n) - Packet structure - eth | ip4/6 | udp - Scale - e.g. ip4dst1, ip6dst10000, 4000u15p Traffic types changed to stream profiles: - From: 2-node-bridge To: trex-sl-2n-ethip4-ip4src253 - From: 3-node-bridge To: trex-sl-3n-ethip4-ip4src254 - From: 3-node-IPv4-dst-1000000 To: trex-sl-3n-ethip4-ip4dst1000000 - From: 3-node-IPv4-dst-100000 To: trex-sl-3n-ethip4-ip4dst100000 - From: 3-node-IPv4-dst-10000 To: trex-sl-3n-ethip4-ip4dst10000 - From: 3-node-IPv4-dst-1000 To: trex-sl-3n-ethip4-ip4dst1000 - From: 3-node-IPv4-dst-100 To: trex-sl-3n-ethip4-ip4dst100 - From: 3-node-IPv4-dst-1 To: trex-sl-3n-ethip4-ip4dst1 - From: 3-node-IPv4 To: trex-sl-3n-ethip4-ip4src253 - From: 3-node-IPv6-dst-1000000 To: trex-sl-3n-ethip6-ip6dst1000000 - From: 3-node-IPv6-dst-100000 To: trex-sl-3n-ethip6-ip6dst100000 - From: 3-node-IPv6-dst-10000 To: trex-sl-3n-ethip6-ip6dst10000 - From: 3-node-IPv6 To: trex-sl-3n-ethip6-ip6src253 - From: 3-node-xconnect To: trex-sl-3n-ethip4-ip4src254 - From: 3-node-IPv4-SNAT-1000u-15p To: trex-sl-3n-ethip4udp-1000u15p - From: 3-node-IPv4-SNAT-100u-15p To: trex-sl-3n-ethip4udp-100u15p - From: 3-node-IPv4-SNAT-10u-15p To: trex-sl-3n-ethip4udp-10u15p - From: 3-node-IPv4-SNAT-1u-15p To: trex-sl-3n-ethip4udp-1u15p - From: 3-node-IPv4-SNAT-1u-1p To: trex-sl-3n-ethip4udp-1u1p - From: 3-node-IPv4-SNAT-2000u-15p To: trex-sl-3n-ethip4udp-2000u15p - From: 3-node-IPv4-SNAT-4000u-15p To: trex-sl-3n-ethip4udp-4000u15p Change-Id: If6a3cf204c93ff9f2cdccc5fd395e26b05483b58 Signed-off-by: Tibor Frank <tifrank@cisco.com>
2017-04-21Added Ethernet frame size tags for performance tests:Maciek Konstantynowicz1-9/+9
- 64B, 78B, IMIX, 1460B, 1480B, 1514B, 1518B, 9000B. Change-Id: I007928855ed05ac2e3aca02298b9436b9b6becdc Signed-off-by: Maciek Konstantynowicz <mkonstan@cisco.com>
2017-03-30Update: NDRCHK rate values and typospmikus1-15/+15
Change-Id: I6c8c4f73cb69f53e0ad3ac96a566c4a6272b6d17 Signed-off-by: pmikus <pmikus@cisco.com>
2017-03-08CSIT-530: Add common setup and teardown to perf testsTibor Frank1-121/+117
Change-Id: I2e76de710b4b758eac1d24d447a9c5938f937385 Signed-off-by: Tibor Frank <tifrank@cisco.com>
2017-01-18Renaming of all perf TCs.Tibor Frank1-18/+27
Change-Id: Id71abf4f52d7fc555ed9c3ec19563d54f5db9ec5 Signed-off-by: Tibor Frank <tifrank@cisco.com>
2017-01-12CSIT-501: Perf tests re-taggingTibor Frank1-11/+11
- Implement tags introduced by https://gerrit.fd.io/r/#/c/3856/ Change-Id: I59313f43f338e2b4a1ad5caf9521b1a0da84d1d3 Signed-off-by: Tibor Frank <tifrank@cisco.com>
2017-01-10CSIT-469 Rename performance suitespmikus1-0/+251
Rename performance suites and add more TAGS Change-Id: I6a5251bb6e380fe2a47a6ec1c1aeb4a9f70c5ce3 Signed-off-by: pmikus <pmikus@cisco.com>
span>; }; struct virtqueue { /**< virtio_crypto_hw structure pointer. */ struct virtio_crypto_hw *hw; /**< mem zone to populate RX ring. */ const struct rte_memzone *mz; /**< memzone to populate hdr and request. */ struct rte_mempool *mpool; uint8_t dev_id; /**< Device identifier. */ uint16_t vq_queue_index; /**< PCI queue index */ void *vq_ring_virt_mem; /**< linear address of vring*/ unsigned int vq_ring_size; phys_addr_t vq_ring_mem; /**< physical address of vring */ struct vring vq_ring; /**< vring keeping desc, used and avail */ uint16_t vq_free_cnt; /**< num of desc available */ uint16_t vq_nentries; /**< vring desc numbers */ /** * Head of the free chain in the descriptor table. If * there are no free descriptors, this will be set to * VQ_RING_DESC_CHAIN_END. */ uint16_t vq_desc_head_idx; uint16_t vq_desc_tail_idx; /** * Last consumed descriptor in the used table, * trails vq_ring.used->idx. */ uint16_t vq_used_cons_idx; uint16_t vq_avail_idx; /* Statistics */ uint64_t packets_sent_total; uint64_t packets_sent_failed; uint64_t packets_received_total; uint64_t packets_received_failed; uint16_t *notify_addr; struct vq_desc_extra vq_descx[0]; }; /** * Tell the backend not to interrupt us. */ void virtqueue_disable_intr(struct virtqueue *vq); /** * Get all mbufs to be freed. */ void virtqueue_detatch_unused(struct virtqueue *vq); static inline int virtqueue_full(const struct virtqueue *vq) { return vq->vq_free_cnt == 0; } #define VIRTQUEUE_NUSED(vq) \ ((uint16_t)((vq)->vq_ring.used->idx - (vq)->vq_used_cons_idx)) static inline void vq_update_avail_idx(struct virtqueue *vq) { virtio_wmb(); vq->vq_ring.avail->idx = vq->vq_avail_idx; } static inline void vq_update_avail_ring(struct virtqueue *vq, uint16_t desc_idx) { uint16_t avail_idx; /* * Place the head of the descriptor chain into the next slot and make * it usable to the host. The chain is made available now rather than * deferring to virtqueue_notify() in the hopes that if the host is * currently running on another CPU, we can keep it processing the new * descriptor. */ avail_idx = (uint16_t)(vq->vq_avail_idx & (vq->vq_nentries - 1)); if (unlikely(vq->vq_ring.avail->ring[avail_idx] != desc_idx)) vq->vq_ring.avail->ring[avail_idx] = desc_idx; vq->vq_avail_idx++; } static inline int virtqueue_kick_prepare(struct virtqueue *vq) { return !(vq->vq_ring.used->flags & VRING_USED_F_NO_NOTIFY); } static inline void virtqueue_notify(struct virtqueue *vq) { /* * Ensure updated avail->idx is visible to host. * For virtio on IA, the notificaiton is through io port operation * which is a serialization instruction itself. */ VTPCI_OPS(vq->hw)->notify_queue(vq->hw, vq); } /** * Dump virtqueue internal structures, for debug purpose only. */ #define VIRTQUEUE_DUMP(vq) do { \ uint16_t used_idx, nused; \ used_idx = (vq)->vq_ring.used->idx; \ nused = (uint16_t)(used_idx - (vq)->vq_used_cons_idx); \ VIRTIO_CRYPTO_INIT_LOG_DBG(\ "VQ: - size=%d; free=%d; used=%d; desc_head_idx=%d;" \ " avail.idx=%d; used_cons_idx=%d; used.idx=%d;" \ " avail.flags=0x%x; used.flags=0x%x", \ (vq)->vq_nentries, (vq)->vq_free_cnt, nused, \ (vq)->vq_desc_head_idx, (vq)->vq_ring.avail->idx, \ (vq)->vq_used_cons_idx, (vq)->vq_ring.used->idx, \ (vq)->vq_ring.avail->flags, (vq)->vq_ring.used->flags); \ } while (0) #endif /* _VIRTQUEUE_H_ */