net/memif: fix init handling when already connected
PATCH 2/2 net/memif: fix init handling when already connected
This patch fixes the situation when there is already connected pair of memif interfaces and another slave tries to initiate the connection with (already occupied) master. Expected behavior is that the second slave is refused and gets disconnect message with reason: "Already connected", while old connection remains functional.
--- drivers/net/memif/memif_socket.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-)
drivers/net/memif/memif_socket.c +8 -6
@@ -204,6 +204,13 @@ memif_msg_receive_init(struct memif_control_channel *cc, memif_msg_t *msg) pmd = dev->data->dev_private;if (((pmd->flags Ð_MEMIF_FLAG_DISABLED ) ==0 ) && (pmd->id == i->id) && (pmd->role ==MEMIF_ROLE_MASTER )) { +if (pmd->flags & (ETH_MEMIF_FLAG_CONNECTING | +ETH_MEMIF_FLAG_CONNECTED )) { +memif_msg_enq_disconnect (cc, +"Already connected" ,0 ); +return -1 ; + } +/* assign control channel to device */ cc->dev = dev; pmd->cc = cc;
@@ -215,12 +222,6 @@ memif_msg_receive_init(struct memif_control_channel *cc, memif_msg_t *msg)return -1 ; } -if (pmd->flags & (ETH_MEMIF_FLAG_CONNECTING | -ETH_MEMIF_FLAG_CONNECTED )) { -memif_msg_enq_disconnect (pmd->cc, -"Already connected" ,0 ); -return -1 ; - }strlcpy (pmd->remote_name, (char *)i->name,sizeof (pmd->remote_name));
@@ -772,6 +773,7 @@ memif_intr_handler(void *arg) ret =memif_msg_receive (cc);/* if driver failed to assign device */ if (cc->dev ==NULL ) { +memif_msg_send_from_queue (cc); ret = rte_intr_callback_unregister_pending(&cc->intr_handle, memif_intr_handler, cc,
Signature · 1 line
2.17.1
Quoted 14 lines
-----Original Message-----
From: Július Milan <[email protected]>
Sent: Wednesday, February 19, 2020 9:19 AM
To: [email protected]; Jakub Grajciar -X (jgrajcia - PANTHEON TECH SRO at Cisco) <[email protected]>
Subject: [dpdk-dev][PATCH 2/2] net/memif: fix init handling when already connectedThis patch fixes the situation when there is already connected pair of memif interfaces and another slave tries to initiate the connection with (already occupied) master. Expected behavior is that the second slave is refused and gets disconnect message with reason: "Already connected", while old connection remains functional.
Quoted 3 lines
Fixes 09c7e63a71f9 ("net/memif: introduce memory interface PMD")Signed-off-by Július Milan <[email protected]>
Ferruh Yigit
AppliedQuoted 14 lines · Jakub Grajciar -X (jgrajcia - PANTHEON TECH SRO at Cisco)
Quoted 14 lines
-----Original Message-----
From: Július Milan <[email protected]>
Sent: Wednesday, February 19, 2020 9:19 AM
To: [email protected]; Jakub Grajciar -X (jgrajcia - PANTHEON TECH SRO at Cisco) <[email protected]>
Subject: [dpdk-dev][PATCH 2/2] net/memif: fix init handling when already connectedThis patch fixes the situation when there is already connected pair of memif interfaces and another slave tries to initiate the connection with (already occupied) master. Expected behavior is that the second slave is refused and gets disconnect message with reason: "Already connected", while old connection remains functional.
Quoted 6 lines
Quoted 3 lines
Fixes 09c7e63a71f9 ("net/memif: introduce memory interface PMD")Signed-off-by Július Milan <[email protected]>Reviewed-by Jakub Grajciar <[email protected]>
Applied to dpdk-next-net/master, thanks.