Skip to content

Commit 9696861

Browse files
mctpd: update setup peer logic for bridged endpoints
For bridged endpoints, route setup is already done once pool space is allocated successfully. Those are destined to be routed from the bridge themselves without need of neighbours. Add appropiate check to avoid extra route creation for setting up bridged endpoints. Signed-off-by: Faizan Ali <faizana@nvidia.com>
1 parent ffcb09e commit 9696861

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

src/mctpd.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2907,13 +2907,18 @@ static int peer_route_update(struct peer *peer, uint16_t type)
29072907
static int setup_added_peer(struct peer *peer)
29082908
{
29092909
int rc;
2910+
struct net *n;
2911+
n = lookup_net(peer->ctx, peer->net);
29102912

29112913
// Set minimum MTU by default for compatibility. Clients can increase
29122914
// this with .SetMTU as needed
29132915
peer->mtu = mctp_nl_min_mtu_byindex(peer->ctx->nl, peer->phys.ifindex);
29142916

2915-
// add route before querying
2916-
add_peer_route(peer);
2917+
// add route before querying for non-bridged endpoints.
2918+
// bridged endpoints will be routed via gateway route from bridge itself
2919+
// without need of neighbour
2920+
if (!is_eid_in_bridge_pool(n, peer->ctx, peer->eid))
2921+
add_peer_route(peer);
29172922

29182923
rc = query_peer_properties(peer);
29192924
if (rc < 0)

0 commit comments

Comments
 (0)