From f8a82c7d2300df620ef917d5b7c855d91aa0f31c Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Mon, 6 Dec 2010 18:33:57 +0000 Subject: [PATCH] [pxe] Set correct PktType in PXENV_UNDI_ISR Signed-off-by: Michael Brown --- src/arch/i386/interface/pxe/pxe_undi.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/arch/i386/interface/pxe/pxe_undi.c b/src/arch/i386/interface/pxe/pxe_undi.c index 687f5e8f3..eb54417cb 100644 --- a/src/arch/i386/interface/pxe/pxe_undi.c +++ b/src/arch/i386/interface/pxe/pxe_undi.c @@ -785,7 +785,15 @@ PXENV_EXIT_t pxenv_undi_isr ( struct s_PXENV_UNDI_ISR *undi_isr ) { undi_isr->Frame.segment = rm_ds; undi_isr->Frame.offset = __from_data16 ( basemem_packet ); undi_isr->ProtType = prottype; - undi_isr->PktType = XMT_DESTADDR; + if ( memcmp ( ll_dest, pxe_netdev->ll_addr, + ll_protocol->ll_addr_len ) == 0 ) { + undi_isr->PktType = P_DIRECTED; + } else if ( memcmp ( ll_dest, pxe_netdev->ll_broadcast, + ll_protocol->ll_addr_len ) == 0 ) { + undi_isr->PktType = P_BROADCAST; + } else { + undi_isr->PktType = P_MULTICAST; + } DBGC2 ( &pxenv_undi_isr, " %04x:%04x+%x(%x) %s hlen %d", undi_isr->Frame.segment, undi_isr->Frame.offset, undi_isr->BufferLength, undi_isr->FrameLength, -- 2.47.2