|WARNING| pw127947 [PATCH v3] gro : ipv6 changes to support GRO for TCP/ipv6

qemudev at loongson.cn qemudev at loongson.cn
Fri Jun 2 08:21:52 CEST 2023


Test-Label: loongarch-compilation
Test-Status: WARNING
http://dpdk.org/patch/127947

_apply patch failure_

Submitter: Kumara Parameshwaran <kumaraparamesh92 at gmail.com>
Date: Fri,  2 Jun 2023 12:04:23 +0530
DPDK git baseline: Repo:dpdk
  Branch: main
  CommitID: abaa473297cf21cb81e5348185a7694ae2f221e7

Apply patch set 127947 failed:

/home/zhoumin/dpdk-ci/tools/../series/28317/127947.patch:196: trailing whitespace.
int32_t 
/home/zhoumin/dpdk-ci/tools/../series/28317/127947.patch:197: trailing whitespace.
gro_tcp_reassemble(struct rte_mbuf *pkt, 
/home/zhoumin/dpdk-ci/tools/../series/28317/127947.patch:198: trailing whitespace.
	void *tbl, 
/home/zhoumin/dpdk-ci/tools/../series/28317/127947.patch:199: trailing whitespace.
	void *key, 
/home/zhoumin/dpdk-ci/tools/../series/28317/127947.patch:223: trailing whitespace.
	sent_seq = rte_be_to_cpu_32(tcp_hdr->sent_seq);	
Checking patch lib/gro/gro_tcp.c...
Checking patch lib/gro/gro_tcp.h...
error: lib/gro/gro_tcp.h: No such file or directory
Checking patch lib/gro/gro_tcp4.c...
Hunk #1 succeeded at 71 (offset -1 lines).
error: while searching for:
}

static inline uint32_t
insert_new_item(struct gro_tcp4_tbl *tbl,
		struct rte_mbuf *pkt,
		uint64_t start_time,
		uint32_t prev_idx,
		uint32_t sent_seq,
		uint16_t ip_id,
		uint8_t is_atomic)
{
	uint32_t item_idx;

	item_idx = find_an_empty_item(tbl);
	if (item_idx == INVALID_ARRAY_INDEX)
		return INVALID_ARRAY_INDEX;

	tbl->items[item_idx].firstseg = pkt;
	tbl->items[item_idx].lastseg = rte_pktmbuf_lastseg(pkt);
	tbl->items[item_idx].start_time = start_time;
	tbl->items[item_idx].next_pkt_idx = INVALID_ARRAY_INDEX;
	tbl->items[item_idx].sent_seq = sent_seq;
	tbl->items[item_idx].ip_id = ip_id;
	tbl->items[item_idx].nb_merged = 1;
	tbl->items[item_idx].is_atomic = is_atomic;
	tbl->item_num++;

	/* if the previous packet exists, chain them together. */
	if (prev_idx != INVALID_ARRAY_INDEX) {
		tbl->items[item_idx].next_pkt_idx =
			tbl->items[prev_idx].next_pkt_idx;
		tbl->items[prev_idx].next_pkt_idx = item_idx;
	}

	return item_idx;
}

static inline uint32_t
delete_item(struct gro_tcp4_tbl *tbl, uint32_t item_idx,
		uint32_t prev_item_idx)
{
	uint32_t next_idx = tbl->items[item_idx].next_pkt_idx;

	/* NULL indicates an empty item */
	tbl->items[item_idx].firstseg = NULL;
	tbl->item_num--;
	if (prev_item_idx != INVALID_ARRAY_INDEX)
		tbl->items[prev_item_idx].next_pkt_idx = next_idx;

	return next_idx;
}

static inline uint32_t
insert_new_flow(struct gro_tcp4_tbl *tbl,
		struct tcp4_flow_key *src,
		uint32_t item_idx)
{
	struct tcp4_flow_key *dst;
	uint32_t flow_idx;

	flow_idx = find_an_empty_flow(tbl);
	if (unlikely(flow_idx == INVALID_ARRAY_INDEX))
		return INVALID_ARRAY_INDEX;

	dst = &(tbl->flows[flow_idx].key);

	rte_ether_addr_copy(&(src->eth_saddr), &(dst->eth_saddr));
	rte_ether_addr_copy(&(src->eth_daddr), &(dst->eth_daddr));
	dst->ip_src_addr = src->ip_src_addr;
	dst->ip_dst_addr = src->ip_dst_addr;
	dst->recv_ack = src->recv_ack;
	dst->src_port = src->src_port;
	dst->dst_port = src->dst_port;

	tbl->flows[flow_idx].start_index = item_idx;
	tbl->flow_num++;

	return flow_idx;
}

/*
 * update the packet length for the flushed packet.
 */
static inline void
update_header(struct gro_tcp_item *item)
{
	struct rte_ipv4_hdr *ipv4_hdr;
	struct rte_mbuf *pkt = item->firstseg;

	ipv4_hdr = (struct rte_ipv4_hdr *)(rte_pktmbuf_mtod(pkt, char *) +
			pkt->l2_len);
	ipv4_hdr->total_length = rte_cpu_to_be_16(pkt->pkt_len -
			pkt->l2_len);
}

int32_t
gro_tcp4_reassemble(struct rte_mbuf *pkt,
		struct gro_tcp4_tbl *tbl,

error: patch failed: lib/gro/gro_tcp4.c:97
error: lib/gro/gro_tcp4.c: patch does not apply
Checking patch lib/gro/gro_tcp4.h...
error: while searching for:
#ifndef _GRO_TCP4_H_
#define _GRO_TCP4_H_

#define INVALID_ARRAY_INDEX 0xffffffffUL
#define GRO_TCP4_TBL_MAX_ITEM_NUM (1024UL * 1024UL)

/* Header fields representing a TCP/IPv4 flow */
struct tcp4_flow_key {
	struct rte_ether_addr eth_saddr;
	struct rte_ether_addr eth_daddr;
	uint32_t ip_src_addr;
	uint32_t ip_dst_addr;

	uint32_t recv_ack;
	uint16_t src_port;
	uint16_t dst_port;
};

struct gro_tcp4_flow {

error: patch failed: lib/gro/gro_tcp4.h:5
error: lib/gro/gro_tcp4.h: patch does not apply
Checking patch lib/gro/gro_tcp6.c...
error: lib/gro/gro_tcp6.c: No such file or directory
Checking patch lib/gro/gro_tcp6.h...
error: lib/gro/gro_tcp6.h: No such file or directory
Checking patch lib/gro/gro_vxlan_tcp4.c...
Hunk #1 succeeded at 163 (offset -1 lines).
Hunk #2 succeeded at 351 (offset -1 lines).
Checking patch lib/gro/meson.build...
error: while searching for:

sources = files(
        'rte_gro.c',
        'gro_tcp4.c',
        'gro_tcp6.c',
        'gro_udp4.c',

error: patch failed: lib/gro/meson.build:3
error: lib/gro/meson.build: patch does not apply



More information about the test-report mailing list