I forgot to mention that this case seeks patch binding.
Darren Reed wrote:
>I'm submitting the following case on behalf of the devil (me).
>
>Template Version: @(#)sac_nextcase 1.64 07/13/07 SMI
>This information is Copyright 2007 Sun Microsystems
>1. Introduction
> 1.1. Project/Component Working Name:
> Broadcast/multicast packet notification through pfhooks
> 1.2. Name of Document Author/Supplier:
> Author: Darren Reed
> 1.3 Date of This Document:
> 26 November, 2007
>4. Technical Description
>Broadcast/multicast packet notification through pfhooks
>
>Introduction
>============
>This case seeks to introduce a new member of the hooks_pkt_event_t
>structure (introduced by PSARC/2005/334) to allow communication of
>whether or not a packet is a multicast or broadcast packet through
>to receivers of packet events. As the interfaces introduced by
>PSARC/2005/334 are currently private, so too is the change being
>introduced by this case.
>
>History
>=======
>Prior to PSARC/2005/334, IPFilter was able to examine the mblks before
>they reached IP, giving it access to the data structures used by the
>DL_UNITDATA_IND primitive. This structure includes a field known as
>dl_group_address and indicates whether or not the packet is a broadcast/
>multicast packet or a unicast packet. With the advent of PSARC/2005/334,
>the interception point for filtering was moved to being inside of IP, to
>a location where the DL_UNITDATA_IND has already been removed from the
>front of the packet, thus preventing IPFilter from being able to detect
>whether or not the packet was unicast or not.
>
>Details
>=======
>The current hook_pkt_event_t structure can be found in <sys/hook_event.h>
>and is as follows:
>
>/*
> * The hook_pkt_event_t structure is supplied with packet events on
> * associated network interfaces.
> *
> * The members of this structure are defined as follows:
> * hpe_ifp - "in" interface for packets coming into the system or forwarded
> * hpe_ofp - "out" interface for packets being transmitted or forwarded
> * hpe_hdr - pointer to protocol header within the packet
> * hpe_mp - pointer to the mblk pointer starting the chain for this packet
> * hpe_mb - pointer to the mblk that contains hpe_hdr
> */
>typedef struct hook_pkt_event {
> phy_if_t hpe_ifp;
> phy_if_t hpe_ofp;
> void *hpe_hdr;
> mblk_t **hpe_mp;
> mblk_t *hpe_mb;
>} hook_pkt_event_t;
>
>The proposed new structure is:
>
>typedef struct hook_pkt_event {
> phy_if_t hpe_ifp;
> phy_if_t hpe_ofp;
> void *hpe_hdr;
> mblk_t **hpe_mp;
> mblk_t *hpe_mb;
> int hpe_flags;
>} hook_pkt_event_t;
>
>The proposed use of hpe_flags is:
>#define HPE_MULTICAST 0x01
>#define HPE_BROADCAST 0x02
>
>These two bit values indicate if the packet is multicast or if it
>is broadcast, however, using DLPI in Solaris today, it is not possible to
>know if a packet that reaches IP is multicast or broadcast by looking
>at the dl_group_address field and nor is there any other mechanism
>available. In light of this, setting both flags together is supported
>as an indication that the packet might be one or the other:
>
>#define HPE_MBCAST 0x03
>
>Interface table
>===============
>+---------------------------------------------------------------+
>| | Interfaces Exported | |
>|------------------+-----------------------+--------------------|
>| Interface | Classification | Comments |
>|------------------+-----------------------+--------------------|
>| HPE_MULTICAST | Consolidation Private | <sys/hook_event.h> |
>| HPE_BROADCAST | Consolidation Private | <sys/hook_event.h> |
>| HPE_MBCAST | Consolidation Private | <sys/hook_event.h> |
>| hook_pkt_event_t | Consolidation Private | <sys/hook_event.h> |
>+------------------+-----------------------+--------------------+
>
>
>6. Resources and Schedule
> 6.4. Steering Committee requested information
> 6.4.1. Consolidation C-team Name:
> ON
> 6.5. ARC review type: FastTrack
> 6.6. ARC Exposure: open
>
>
>