Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[202205] dhcrelay: Don't look up the ifindex for the fallback interface (#17797) #18416

Merged
merged 1 commit into from
Mar 22, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
From 079ff1bb570dae96c4ca513e210c9856e9cc75b0 Mon Sep 17 00:00:00 2001
From: Saikrishna Arcot <sarcot@microsoft.com>
Date: Wed, 10 Jan 2024 23:30:17 -0800
Subject: [PATCH] Don't look up the ifindex for fallback

If sending a packet on the "fallback" interface, then don't try to get the
ifindex for that interface. There will never be an actual interface named
"fallback" in SONiC (at least, not one that we will want to use).

This might save 0.009-0.012 seconds per upstream server, and when there
are as many as 48 upstream servers, it can save about 0.4-0.5 seconds of
time. This then allows dhcrelay to process more packets.

Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>

diff --git a/common/socket.c b/common/socket.c
index da9f501..e707a7f 100644
--- a/common/socket.c
+++ b/common/socket.c
@@ -767,7 +767,10 @@ ssize_t send_packet (interface, packet, raw, len, from, to, hto)
memcpy(&dst, to, sizeof(dst));
m.msg_name = &dst;
m.msg_namelen = sizeof(dst);
- ifindex = if_nametoindex(interface->name);
+ if (strcmp(interface->name, "fallback") != 0)
+ ifindex = if_nametoindex(interface->name);
+ else
+ ifindex = 0;

/*
* Set the data buffer we're sending. (Using this wacky
--
2.34.1

1 change: 1 addition & 0 deletions src/isc-dhcp/patch/series
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,4 @@
0011-dhcp-relay-Prevent-Buffer-Overrun.patch
0012-add-option-si-to-support-using-src-intf-ip-in-relay.patch
0013-Fix-dhcrelay-agent-option-buffer-pointer-logic.patch
0016-Don-t-look-up-the-ifindex-for-fallback.patch
Loading