Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 Feb 2004 04:36:07 -0800 (PST)
From:      Alexander Motin <mav@alkar.net>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   kern/62957: When created dummynet pipe on output router interface with lower MTU system stops to generate 'Fragment Needed but DF was Set' ICMP in cases when it must
Message-ID:  <200402171236.i1HCa7p2054112@www.freebsd.org>
Resent-Message-ID: <200402171240.i1HCeKRU002449@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         62957
>Category:       kern
>Synopsis:       When created dummynet pipe on output router interface with lower MTU system stops to generate 'Fragment Needed but DF was Set' ICMP in cases when it must
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Feb 17 04:40:20 PST 2004
>Closed-Date:
>Last-Modified:
>Originator:     Alexander Motin
>Release:        4.8 and 5.2
>Organization:
Alkar-Teleport ISP
>Environment:
FreeBSD ghsdr3-dp.alkar.net 4.8-RELEASE FreeBSD 4.8-RELEASE #2: Thu Oct  2 18:36:09 EEST 2003     povar@ghsdr3-dp.alkar.net:/usr/src/sys/compile/GHSDR2-DP  i386

FreeBSD orphanage.alkar.net 5.2-RELEASE FreeBSD 5.2-RELEASE #0: Wed Jan 14 04:41:35 EET 2004     mav@orphanage.alkar.net:/usr/obj/usr/src/sys/orphanage  i386

>Description:
When I create dummynet pipe on output router interface with lower MTU system stops to generate 'Fragment Needed but DF was Set' ICMP in cases when it must. If I create this pipe on incoming interface there is no problem. 
>How-To-Repeat:
Take router with 2 interfaces and small MTU on one of them.
Create output dummynet pipe on interface with small MTU.
Send big packet with DF flag set.
>Fix:
Check result code of ip_output() in ip_dummynet.c and send requires ICMP message.

Here is no any check of result code:
        case DN_TO_IP_OUT:                                                              
            (void)ip_output((struct mbuf *)pkt, NULL, NULL, 0, NULL, NULL);             
            rt_unref (pkt->ro.ro_rt, __func__) ;                                        
            break ;                                                                     

>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200402171236.i1HCa7p2054112>