public inbox for passt-dev@passt.top
 help / color / mirror / code / Atom feed
From: Anshu Kumari <anskuma@redhat.com>
To: anskuma@redhat.com, sbrivio@redhat.com, passt-dev@passt.top
Cc: lvivier@redhat.com, david@gibson.dropbear.id.au, jmaloy@redhat.com
Subject: [PATCH v5 7/7] dhcp: Handle FQDN option with RFC 3396 concatenation
Date: Fri, 17 Jul 2026 23:26:44 +0530	[thread overview]
Message-ID: <20260717175648.879152-8-anskuma@redhat.com> (raw)
In-Reply-To: <20260717175648.879152-1-anskuma@redhat.com>

Mark Client FQDN (option 81) as concatenation-requiring per
RFC 4702, Section 2.  When the encoded FQDN exceeds 255 bytes,
fill() now splits it across DHCP message fields using the RFC 3396
splitting infrastructure instead of silently dropping it.

Link: https://bugs.passt.top/show_bug.cgi?id=192
Signed-off-by: Anshu Kumari <anskuma@redhat.com>
---
v5:
  - New patch: mark Client FQDN (option 81) as concatenation-requiring per RFC 4702
---
 dhcp.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/dhcp.c b/dhcp.c
index 6bebb5f..a54ac58 100644
--- a/dhcp.c
+++ b/dhcp.c
@@ -484,9 +484,15 @@ enum dhcp_overload {
  */
 static bool is_concat_opt(int o)
 {
-	if ((size_t)o >= ARRAY_SIZE(dhcp_opt_types))
-		return false;
-	return dhcp_opt_types[o] == DHCP_OPT_STR_CONCAT;
+	if ((size_t)o < ARRAY_SIZE(dhcp_opt_types) &&
+	    dhcp_opt_types[o] == DHCP_OPT_STR_CONCAT)
+		return true;
+
+	/* RFC 4702, Section 2: Client FQDN option requires concatenation */
+	if (o == 81)
+		return true;
+
+	return false;
 }
 
 /**
-- 
2.54.0


      parent reply	other threads:[~2026-07-17 17:57 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-17 17:56 [PATCH v5 0/7] Add --dhcp-boot and --dhcp-opt options Anshu Kumari
2026-07-17 17:56 ` [PATCH v5 1/7] dhcp: Refactor fill_one() to operate on a generic buffer Anshu Kumari
2026-07-17 17:56 ` [PATCH v5 2/7] dhcp: Add option state management with enum opt_state Anshu Kumari
2026-07-17 17:56 ` [PATCH v5 3/7] dhcp: Add option overload Anshu Kumari
2026-07-17 17:56 ` [PATCH v5 4/7] dhcp: Add --dhcp-opt with option table and value parser Anshu Kumari
2026-07-17 17:56 ` [PATCH v5 5/7] dhcp: Add --dhcp-boot command-line option Anshu Kumari
2026-07-17 17:56 ` [PATCH v5 6/7] dhcp: Add RFC 3396 option splitting for concatenation-requiring options Anshu Kumari
2026-07-17 17:56 ` Anshu Kumari [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260717175648.879152-8-anskuma@redhat.com \
    --to=anskuma@redhat.com \
    --cc=david@gibson.dropbear.id.au \
    --cc=jmaloy@redhat.com \
    --cc=lvivier@redhat.com \
    --cc=passt-dev@passt.top \
    --cc=sbrivio@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://passt.top/passt

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for IMAP folder(s).