Re: svn commit: r249925 - in head/sys: dev/iicbus dev/lmc dev/ppbus dev/usb/net net net80211 netatalk netgraph netinet netinet6 netpfil/ipfw netpfil/pf

From: Adrian Chadd <adrian_at_freebsd.org>
Date: Fri, 26 Apr 2013 10:01:38 -0700
Hi,

This breaks the ability to compile this stuff on -9.

Like, you know, a bunch of vendors tend to do.

It would have been nice for a quick review cycle when you change
network APIs like this.

Also, since you've changed an API, have you bumped FREEBSD_VERSION ?

This is why I suggested you do it in two parts - first fix the const
brokenness you introduced, then do up this patch with a review cycle.

Thanks,


Adrian

On 26 April 2013 05:50, Gleb Smirnoff <glebius_at_freebsd.org> wrote:
> Author: glebius
> Date: Fri Apr 26 12:50:32 2013
> New Revision: 249925
> URL: http://svnweb.freebsd.org/changeset/base/249925
>
> Log:
>   Add const qualifier to the dst parameter of the ifnet if_output method.
>
> Modified:
>   head/sys/dev/iicbus/if_ic.c
>   head/sys/dev/lmc/if_lmc.c
>   head/sys/dev/lmc/if_lmc.h
>   head/sys/dev/ppbus/if_plip.c
>   head/sys/dev/usb/net/if_usie.c
>   head/sys/dev/usb/net/uhso.c
>   head/sys/net/ethernet.h
>   head/sys/net/if.c
>   head/sys/net/if_arc.h
>   head/sys/net/if_arcsubr.c
>   head/sys/net/if_atm.h
>   head/sys/net/if_atmsubr.c
>   head/sys/net/if_dead.c
>   head/sys/net/if_disc.c
>   head/sys/net/if_ef.c
>   head/sys/net/if_enc.c
>   head/sys/net/if_ethersubr.c
>   head/sys/net/if_faith.c
>   head/sys/net/if_fddisubr.c
>   head/sys/net/if_fwsubr.c
>   head/sys/net/if_gif.c
>   head/sys/net/if_gif.h
>   head/sys/net/if_gre.c
>   head/sys/net/if_iso88025subr.c
>   head/sys/net/if_lagg.c
>   head/sys/net/if_lagg.h
>   head/sys/net/if_loop.c
>   head/sys/net/if_spppsubr.c
>   head/sys/net/if_stf.c
>   head/sys/net/if_tun.c
>   head/sys/net/if_var.h
>   head/sys/net/iso88025.h
>   head/sys/net80211/ieee80211.c
>   head/sys/net80211/ieee80211_output.c
>   head/sys/net80211/ieee80211_proto.h
>   head/sys/net80211/ieee80211_var.h
>   head/sys/netatalk/aarp.c
>   head/sys/netatalk/aarp.h
>   head/sys/netatalk/at_control.c
>   head/sys/netatalk/at_extern.h
>   head/sys/netgraph/ng_fec.c
>   head/sys/netgraph/ng_iface.c
>   head/sys/netinet/if_atm.c
>   head/sys/netinet/if_atm.h
>   head/sys/netinet/if_ether.c
>   head/sys/netinet/if_ether.h
>   head/sys/netinet/ip_carp.c
>   head/sys/netinet/ip_carp.h
>   head/sys/netinet/ip_output.c
>   head/sys/netinet6/nd6.c
>   head/sys/netinet6/nd6.h
>   head/sys/netpfil/ipfw/ip_fw_log.c
>   head/sys/netpfil/pf/if_pflog.c
>   head/sys/netpfil/pf/if_pfsync.c
>
> Modified: head/sys/dev/iicbus/if_ic.c
> ==============================================================================
> --- head/sys/dev/iicbus/if_ic.c Fri Apr 26 12:27:30 2013        (r249924)
> +++ head/sys/dev/iicbus/if_ic.c Fri Apr 26 12:50:32 2013        (r249925)
> _at__at_ -99,7 +99,7 _at__at_ static int icprobe(device_t);
>  static int icattach(device_t);
>
>  static int icioctl(struct ifnet *, u_long, caddr_t);
> -static int icoutput(struct ifnet *, struct mbuf *, struct sockaddr *,
> +static int icoutput(struct ifnet *, struct mbuf *, const struct sockaddr *,
>                 struct route *);
>
>  static int icintr(device_t, int, char *);
> _at__at_ -351,7 +351,7 _at__at_ icintr(device_t dev, int event, char *pt
>   * icoutput()
>   */
>  static int
> -icoutput(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst,
> +icoutput(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst,
>      struct route *ro)
>  {
>         struct ic_softc *sc = ifp->if_softc;
>
> Modified: head/sys/dev/lmc/if_lmc.c
> ==============================================================================
> --- head/sys/dev/lmc/if_lmc.c   Fri Apr 26 12:27:30 2013        (r249924)
> +++ head/sys/dev/lmc/if_lmc.c   Fri Apr 26 12:50:32 2013        (r249925)
> _at__at_ -4587,7 +4587,7 _at__at_ lmc_ifnet_start(struct ifnet *ifp)
>  /* Called from a syscall (user context; no spinlocks). */
>  static int
>  lmc_raw_output(struct ifnet *ifp, struct mbuf *m,
> - struct sockaddr *dst, struct route *ro)
> + const struct sockaddr *dst, struct route *ro)
>    {
>    softc_t *sc = IFP2SC(ifp);
>    int error = 0;
>
> Modified: head/sys/dev/lmc/if_lmc.h
> ==============================================================================
> --- head/sys/dev/lmc/if_lmc.h   Fri Apr 26 12:27:30 2013        (r249924)
> +++ head/sys/dev/lmc/if_lmc.h   Fri Apr 26 12:50:32 2013        (r249925)
> _at__at_ -1595,7 +1595,7 _at__at_ static int lmc_raw_ioctl(struct ifnet *,
>  static int lmc_ifnet_ioctl(struct ifnet *, u_long, caddr_t);
>  static void lmc_ifnet_start(struct ifnet *);
>  static int lmc_raw_output(struct ifnet *, struct mbuf *,
> - struct sockaddr *, struct route *);
> + const struct sockaddr *, struct route *);
>  # ifdef __OpenBSD__
>  static int ifmedia_change(struct ifnet *);
>  static void ifmedia_status(struct ifnet *, struct ifmediareq *);
>
> Modified: head/sys/dev/ppbus/if_plip.c
> ==============================================================================
> --- head/sys/dev/ppbus/if_plip.c        Fri Apr 26 12:27:30 2013        (r249924)
> +++ head/sys/dev/ppbus/if_plip.c        Fri Apr 26 12:50:32 2013        (r249925)
> _at__at_ -173,7 +173,7 _at__at_ static u_char *ctxmith;
>  /* Functions for the lp# interface */
>  static int lpinittables(void);
>  static int lpioctl(struct ifnet *, u_long, caddr_t);
> -static int lpoutput(struct ifnet *, struct mbuf *, struct sockaddr *,
> +static int lpoutput(struct ifnet *, struct mbuf *, const struct sockaddr *,
>         struct route *);
>  static void lpstop(struct lp_data *);
>  static void lp_intr(void *);
> _at__at_ -682,7 +682,7 _at__at_ lpoutbyte(u_char byte, int spin, device_
>  }
>
>  static int
> -lpoutput(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst,
> +lpoutput(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst,
>      struct route *ro)
>  {
>         struct lp_data *sc = ifp->if_softc;
>
> Modified: head/sys/dev/usb/net/if_usie.c
> ==============================================================================
> --- head/sys/dev/usb/net/if_usie.c      Fri Apr 26 12:27:30 2013        (r249924)
> +++ head/sys/dev/usb/net/if_usie.c      Fri Apr 26 12:50:32 2013        (r249925)
> _at__at_ -121,7 +121,8 _at__at_ static void usie_if_sync_cb(void *, int)
>  static void usie_if_status_cb(void *, int);
>
>  static void usie_if_start(struct ifnet *);
> -static int usie_if_output(struct ifnet *, struct mbuf *, struct sockaddr *, struct route *);
> +static int usie_if_output(struct ifnet *, struct mbuf *,
> +       const struct sockaddr *, struct route *);
>  static void usie_if_init(void *);
>  static void usie_if_stop(struct usie_softc *);
>  static int usie_if_ioctl(struct ifnet *, u_long, caddr_t);
> _at__at_ -1181,7 +1182,7 _at__at_ usie_if_start(struct ifnet *ifp)
>  }
>
>  static int
> -usie_if_output(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst,
> +usie_if_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst,
>      struct route *ro)
>  {
>         int err;
>
> Modified: head/sys/dev/usb/net/uhso.c
> ==============================================================================
> --- head/sys/dev/usb/net/uhso.c Fri Apr 26 12:27:30 2013        (r249924)
> +++ head/sys/dev/usb/net/uhso.c Fri Apr 26 12:50:32 2013        (r249925)
> _at__at_ -467,8 +467,8 _at__at_ static void uhso_if_init(void *);
>  static void uhso_if_start(struct ifnet *);
>  static void uhso_if_stop(struct uhso_softc *);
>  static int  uhso_if_ioctl(struct ifnet *, u_long, caddr_t);
> -static int  uhso_if_output(struct ifnet *, struct mbuf *, struct sockaddr *,
> -    struct route *);
> +static int  uhso_if_output(struct ifnet *, struct mbuf *,
> +    const struct sockaddr *, struct route *);
>  static void uhso_if_rxflush(void *);
>
>  static device_probe_t uhso_probe;
> _at__at_ -1881,7 +1881,7 _at__at_ uhso_if_init(void *priv)
>  }
>
>  static int
> -uhso_if_output(struct ifnet *ifp, struct mbuf *m0, struct sockaddr *dst,
> +uhso_if_output(struct ifnet *ifp, struct mbuf *m0, const struct sockaddr *dst,
>      struct route *ro)
>  {
>         int error;
>
> Modified: head/sys/net/ethernet.h
> ==============================================================================
> --- head/sys/net/ethernet.h     Fri Apr 26 12:27:30 2013        (r249924)
> +++ head/sys/net/ethernet.h     Fri Apr 26 12:50:32 2013        (r249925)
> _at__at_ -375,8 +375,8 _at__at_ extern      void ether_demux(struct ifnet *,
>  extern void ether_ifattach(struct ifnet *, const u_int8_t *);
>  extern void ether_ifdetach(struct ifnet *);
>  extern int  ether_ioctl(struct ifnet *, u_long, caddr_t);
> -extern int  ether_output(struct ifnet *,
> -                  struct mbuf *, struct sockaddr *, struct route *);
> +extern int  ether_output(struct ifnet *, struct mbuf *,
> +           const struct sockaddr *, struct route *);
>  extern int  ether_output_frame(struct ifnet *, struct mbuf *);
>  extern char *ether_sprintf(const u_int8_t *);
>  void   ether_vlan_mtap(struct bpf_if *, struct mbuf *,
>
> Modified: head/sys/net/if.c
> ==============================================================================
> --- head/sys/net/if.c   Fri Apr 26 12:27:30 2013        (r249924)
> +++ head/sys/net/if.c   Fri Apr 26 12:50:32 2013        (r249925)
> _at__at_ -134,7 +134,7 _at__at_ int (*carp_master_p)(struct ifaddr *);
>  #if defined(INET) || defined(INET6)
>  int    (*carp_forus_p)(struct ifnet *ifp, u_char *dhost);
>  int    (*carp_output_p)(struct ifnet *ifp, struct mbuf *m,
> -    struct sockaddr *sa);
> +    const struct sockaddr *sa);
>  int    (*carp_ioctl_p)(struct ifreq *, u_long, struct thread *);
>  int    (*carp_attach_p)(struct ifaddr *, int);
>  void   (*carp_detach_p)(struct ifaddr *);
>
> Modified: head/sys/net/if_arc.h
> ==============================================================================
> --- head/sys/net/if_arc.h       Fri Apr 26 12:27:30 2013        (r249924)
> +++ head/sys/net/if_arc.h       Fri Apr 26 12:50:32 2013        (r249925)
> _at__at_ -133,7 +133,7 _at__at_ void        arc_storelladdr(struct ifnet *, u_i
>  int    arc_isphds(u_int8_t);
>  void   arc_input(struct ifnet *, struct mbuf *);
>  int    arc_output(struct ifnet *, struct mbuf *,
> -           struct sockaddr *, struct route *);
> +           const struct sockaddr *, struct route *);
>  int    arc_ioctl(struct ifnet *, u_long, caddr_t);
>
>  void           arc_frag_init(struct ifnet *);
>
> Modified: head/sys/net/if_arcsubr.c
> ==============================================================================
> --- head/sys/net/if_arcsubr.c   Fri Apr 26 12:27:30 2013        (r249924)
> +++ head/sys/net/if_arcsubr.c   Fri Apr 26 12:50:32 2013        (r249925)
> _at__at_ -92,8 +92,8 _at__at_ u_int8_t  arcbroadcastaddr = 0;
>  #define ARC_LLADDR(ifp)        (*(u_int8_t *)IF_LLADDR(ifp))
>
>  #define senderr(e) { error = (e); goto bad;}
> -#define SIN(s) ((struct sockaddr_in *)s)
> -#define SIPX(s)        ((struct sockaddr_ipx *)s)
> +#define SIN(s) ((const struct sockaddr_in *)(s))
> +#define SIPX(s)        ((const struct sockaddr_ipx *)(s))
>
>  /*
>   * ARCnet output routine.
> _at__at_ -101,7 +101,7 _at__at_ u_int8_t  arcbroadcastaddr = 0;
>   * Assumes that ifp is actually pointer to arccom structure.
>   */
>  int
> -arc_output(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst,
> +arc_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst,
>      struct route *ro)
>  {
>         struct arc_header       *ah;
> _at__at_ -186,8 +186,11 _at__at_ arc_output(struct ifnet *ifp, struct mbu
>  #endif
>
>         case AF_UNSPEC:
> +           {
> +               const struct arc_header *ah;
> +
>                 loop_copy = -1;
> -               ah = (struct arc_header *)dst->sa_data;
> +               ah = (const struct arc_header *)dst->sa_data;
>                 adst = ah->arc_dhost;
>                 atype = ah->arc_type;
>
> _at__at_ -207,7 +210,7 _at__at_ arc_output(struct ifnet *ifp, struct mbu
>  #endif
>                 }
>                 break;
> -
> +           }
>         default:
>                 if_printf(ifp, "can't handle af%d\n", dst->sa_family);
>                 senderr(EAFNOSUPPORT);
>
> Modified: head/sys/net/if_atm.h
> ==============================================================================
> --- head/sys/net/if_atm.h       Fri Apr 26 12:27:30 2013        (r249924)
> +++ head/sys/net/if_atm.h       Fri Apr 26 12:50:32 2013        (r249925)
> _at__at_ -292,7 +292,7 _at__at_ void        atm_ifattach(struct ifnet *);
>  void   atm_ifdetach(struct ifnet *);
>  void   atm_input(struct ifnet *, struct atm_pseudohdr *,
>             struct mbuf *, void *);
> -int    atm_output(struct ifnet *, struct mbuf *, struct sockaddr *,
> +int    atm_output(struct ifnet *, struct mbuf *, const struct sockaddr *,
>             struct route *);
>  struct atmio_vcctable *atm_getvccs(struct atmio_vcc **, u_int, u_int,
>             struct mtx *, int);
>
> Modified: head/sys/net/if_atmsubr.c
> ==============================================================================
> --- head/sys/net/if_atmsubr.c   Fri Apr 26 12:27:30 2013        (r249924)
> +++ head/sys/net/if_atmsubr.c   Fri Apr 26 12:50:32 2013        (r249925)
> _at__at_ -121,7 +121,7 _at__at_ static MALLOC_DEFINE(M_IFATM, "ifatm", "
>   *             ro->ro_rt must also be NULL.
>   */
>  int
> -atm_output(struct ifnet *ifp, struct mbuf *m0, struct sockaddr *dst,
> +atm_output(struct ifnet *ifp, struct mbuf *m0, const struct sockaddr *dst,
>      struct route *ro)
>  {
>         u_int16_t etype = 0;                    /* if using LLC/SNAP */
> _at__at_ -129,7 +129,7 _at__at_ atm_output(struct ifnet *ifp, struct mbu
>         struct atm_pseudohdr atmdst, *ad;
>         struct mbuf *m = m0;
>         struct atmllc *atmllc;
> -       struct atmllc *llc_hdr = NULL;
> +       const struct atmllc *llc_hdr = NULL;
>         u_int32_t atm_flags;
>
>  #ifdef MAC
> _at__at_ -173,7 +173,7 _at__at_ atm_output(struct ifnet *ifp, struct mbu
>                          * (atm pseudo header (4) + LLC/SNAP (8))
>                          */
>                         bcopy(dst->sa_data, &atmdst, sizeof(atmdst));
> -                       llc_hdr = (struct atmllc *)(dst->sa_data +
> +                       llc_hdr = (const struct atmllc *)(dst->sa_data +
>                             sizeof(atmdst));
>                         break;
>
>
> Modified: head/sys/net/if_dead.c
> ==============================================================================
> --- head/sys/net/if_dead.c      Fri Apr 26 12:27:30 2013        (r249924)
> +++ head/sys/net/if_dead.c      Fri Apr 26 12:50:32 2013        (r249925)
> _at__at_ -42,7 +42,7 _at__at_ __FBSDID("$FreeBSD$");
>  #include <net/if_var.h>
>
>  static int
> -ifdead_output(struct ifnet *ifp, struct mbuf *m, struct sockaddr *sa,
> +ifdead_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *sa,
>      struct route *ro)
>  {
>
>
> Modified: head/sys/net/if_disc.c
> ==============================================================================
> --- head/sys/net/if_disc.c      Fri Apr 26 12:27:30 2013        (r249924)
> +++ head/sys/net/if_disc.c      Fri Apr 26 12:50:32 2013        (r249925)
> _at__at_ -64,7 +64,7 _at__at_ struct disc_softc {
>  };
>
>  static int     discoutput(struct ifnet *, struct mbuf *,
> -                   struct sockaddr *, struct route *);
> +                   const struct sockaddr *, struct route *);
>  static void    discrtrequest(int, struct rtentry *, struct rt_addrinfo *);
>  static int     discioctl(struct ifnet *, u_long, caddr_t);
>  static int     disc_clone_create(struct if_clone *, int, caddr_t);
> _at__at_ -155,7 +155,7 _at__at_ static moduledata_t disc_mod = {
>  DECLARE_MODULE(if_disc, disc_mod, SI_SUB_PSEUDO, SI_ORDER_ANY);
>
>  static int
> -discoutput(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst,
> +discoutput(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst,
>      struct route *ro)
>  {
>         u_int32_t af;
> _at__at_ -163,15 +163,14 _at__at_ discoutput(struct ifnet *ifp, struct mbu
>         M_ASSERTPKTHDR(m);
>
>         /* BPF writes need to be handled specially. */
> -       if (dst->sa_family == AF_UNSPEC) {
> +       if (dst->sa_family == AF_UNSPEC)
>                 bcopy(dst->sa_data, &af, sizeof(af));
> -               dst->sa_family = af;
> -       }
> +       else
> +               af = dst->sa_family;
>
> -       if (bpf_peers_present(ifp->if_bpf)) {
> -               u_int af = dst->sa_family;
> +       if (bpf_peers_present(ifp->if_bpf))
>                 bpf_mtap2(ifp->if_bpf, &af, sizeof(af), m);
> -       }
> +
>         m->m_pkthdr.rcvif = ifp;
>
>         ifp->if_opackets++;
>
> Modified: head/sys/net/if_ef.c
> ==============================================================================
> --- head/sys/net/if_ef.c        Fri Apr 26 12:27:30 2013        (r249924)
> +++ head/sys/net/if_ef.c        Fri Apr 26 12:50:32 2013        (r249925)
> _at__at_ -102,7 +102,7 _at__at_ static int efcount;
>
>  extern int (*ef_inputp)(struct ifnet*, struct ether_header *eh, struct mbuf *m);
>  extern int (*ef_outputp)(struct ifnet *ifp, struct mbuf **mp,
> -               struct sockaddr *dst, short *tp, int *hlen);
> +               const struct sockaddr *dst, short *tp, int *hlen);
>
>  /*
>  static void ef_reset (struct ifnet *);
> _at__at_ -114,7 +114,7 _at__at_ static int ef_ioctl(struct ifnet *, u_lo
>  static void ef_start(struct ifnet *);
>  static int ef_input(struct ifnet*, struct ether_header *, struct mbuf *);
>  static int ef_output(struct ifnet *ifp, struct mbuf **mp,
> -               struct sockaddr *dst, short *tp, int *hlen);
> +               const struct sockaddr *dst, short *tp, int *hlen);
>
>  static int ef_load(void);
>  static int ef_unload(void);
> _at__at_ -386,8 +386,8 _at__at_ ef_input(struct ifnet *ifp, struct ether
>  }
>
>  static int
> -ef_output(struct ifnet *ifp, struct mbuf **mp, struct sockaddr *dst, short *tp,
> -       int *hlen)
> +ef_output(struct ifnet *ifp, struct mbuf **mp, const struct sockaddr *dst,
> +       short *tp, int *hlen)
>  {
>         struct efnet *sc = (struct efnet*)ifp->if_softc;
>         struct mbuf *m = *mp;
>
> Modified: head/sys/net/if_enc.c
> ==============================================================================
> --- head/sys/net/if_enc.c       Fri Apr 26 12:27:30 2013        (r249924)
> +++ head/sys/net/if_enc.c       Fri Apr 26 12:50:32 2013        (r249925)
> _at__at_ -88,7 +88,7 _at__at_ struct enc_softc {
>
>  static int     enc_ioctl(struct ifnet *, u_long, caddr_t);
>  static int     enc_output(struct ifnet *ifp, struct mbuf *m,
> -                   struct sockaddr *dst, struct route *ro);
> +                   const struct sockaddr *dst, struct route *ro);
>  static int     enc_clone_create(struct if_clone *, int, caddr_t);
>  static void    enc_clone_destroy(struct ifnet *);
>  static struct if_clone *enc_cloner;
> _at__at_ -188,7 +188,7 _at__at_ static moduledata_t enc_mod = {
>  DECLARE_MODULE(if_enc, enc_mod, SI_SUB_PROTO_IFATTACHDOMAIN, SI_ORDER_ANY);
>
>  static int
> -enc_output(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst,
> +enc_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst,
>      struct route *ro)
>  {
>         m_freem(m);
>
> Modified: head/sys/net/if_ethersubr.c
> ==============================================================================
> --- head/sys/net/if_ethersubr.c Fri Apr 26 12:27:30 2013        (r249924)
> +++ head/sys/net/if_ethersubr.c Fri Apr 26 12:50:32 2013        (r249925)
> _at__at_ -83,7 +83,7 _at__at_
>
>  int (*ef_inputp)(struct ifnet*, struct ether_header *eh, struct mbuf *m);
>  int (*ef_outputp)(struct ifnet *ifp, struct mbuf **mp,
> -               struct sockaddr *dst, short *tp, int *hlen);
> +               const struct sockaddr *dst, short *tp, int *hlen);
>
>  #ifdef NETATALK
>  #include <netatalk/at.h>
> _at__at_ -149,7 +149,7 _at__at_ static MALLOC_DEFINE(M_ARPCOM, "arpcom",
>   */
>  int
>  ether_output(struct ifnet *ifp, struct mbuf *m,
> -       struct sockaddr *dst, struct route *ro)
> +       const struct sockaddr *dst, struct route *ro)
>  {
>         short type;
>         int error = 0, hdrcmplt = 0;
> _at__at_ -238,8 +238,8 _at__at_ ether_output(struct ifnet *ifp, struct m
>                         goto bad;
>                 } else
>                     type = htons(ETHERTYPE_IPX);
> -               bcopy((caddr_t)&(((struct sockaddr_ipx *)dst)->sipx_addr.x_host),
> -                   (caddr_t)edst, sizeof (edst));
> +               bcopy(&((const struct sockaddr_ipx *)dst)->sipx_addr.x_host,
> +                   edst, sizeof (edst));
>                 break;
>  #endif
>  #ifdef NETATALK
> _at__at_ -247,9 +247,9 _at__at_ ether_output(struct ifnet *ifp, struct m
>           {
>             struct at_ifaddr *aa;
>
> -           if ((aa = at_ifawithnet((struct sockaddr_at *)dst)) == NULL)
> +           if ((aa = at_ifawithnet((const struct sockaddr_at *)dst)) == NULL)
>                     senderr(EHOSTUNREACH); /* XXX */
> -           if (!aarpresolve(ifp, m, (struct sockaddr_at *)dst, edst)) {
> +           if (!aarpresolve(ifp, m, (const struct sockaddr_at *)dst, edst)) {
>                     ifa_free(&aa->aa_ifa);
>                     return (0);
>             }
> _at__at_ -279,18 +279,21 _at__at_ ether_output(struct ifnet *ifp, struct m
>  #endif /* NETATALK */
>
>         case pseudo_AF_HDRCMPLT:
> +           {
> +               const struct ether_header *eh;
> +
>                 hdrcmplt = 1;
> -               eh = (struct ether_header *)dst->sa_data;
> +               eh = (const struct ether_header *)dst->sa_data;
>                 (void)memcpy(esrc, eh->ether_shost, sizeof (esrc));
>                 /* FALLTHROUGH */
>
>         case AF_UNSPEC:
>                 loop_copy = 0; /* if this is for us, don't do it */
> -               eh = (struct ether_header *)dst->sa_data;
> +               eh = (const struct ether_header *)dst->sa_data;
>                 (void)memcpy(edst, eh->ether_dhost, sizeof (edst));
>                 type = eh->ether_type;
>                 break;
> -
> +            }
>         default:
>                 if_printf(ifp, "can't handle af%d\n", dst->sa_family);
>                 senderr(EAFNOSUPPORT);
>
> Modified: head/sys/net/if_faith.c
> ==============================================================================
> --- head/sys/net/if_faith.c     Fri Apr 26 12:27:30 2013        (r249924)
> +++ head/sys/net/if_faith.c     Fri Apr 26 12:50:32 2013        (r249925)
> _at__at_ -84,7 +84,7 _at__at_ struct faith_softc {
>  };
>
>  static int faithioctl(struct ifnet *, u_long, caddr_t);
> -int faithoutput(struct ifnet *, struct mbuf *, struct sockaddr *,
> +static int faithoutput(struct ifnet *, struct mbuf *, const struct sockaddr *,
>         struct route *);
>  static void faithrtrequest(int, struct rtentry *, struct rt_addrinfo *);
>  #ifdef INET6
> _at__at_ -184,12 +184,9 _at__at_ faith_clone_destroy(ifp)
>         free(sc, M_FAITH);
>  }
>
> -int
> -faithoutput(ifp, m, dst, ro)
> -       struct ifnet *ifp;
> -       struct mbuf *m;
> -       struct sockaddr *dst;
> -       struct route *ro;
> +static int
> +faithoutput(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst,
> +       struct route *ro)
>  {
>         int isr;
>         u_int32_t af;
> _at__at_ -200,15 +197,13 _at__at_ faithoutput(ifp, m, dst, ro)
>         if (ro != NULL)
>                 rt = ro->ro_rt;
>         /* BPF writes need to be handled specially. */
> -       if (dst->sa_family == AF_UNSPEC) {
> +       if (dst->sa_family == AF_UNSPEC)
>                 bcopy(dst->sa_data, &af, sizeof(af));
> -               dst->sa_family = af;
> -       }
> -
> -       if (bpf_peers_present(ifp->if_bpf)) {
> +       else
>                 af = dst->sa_family;
> +
> +       if (bpf_peers_present(ifp->if_bpf))
>                 bpf_mtap2(ifp->if_bpf, &af, sizeof(af), m);
> -       }
>
>         if (rt && rt->rt_flags & (RTF_REJECT|RTF_BLACKHOLE)) {
>                 m_freem(m);
> _at__at_ -217,7 +212,7 _at__at_ faithoutput(ifp, m, dst, ro)
>         }
>         ifp->if_opackets++;
>         ifp->if_obytes += m->m_pkthdr.len;
> -       switch (dst->sa_family) {
> +       switch (af) {
>  #ifdef INET
>         case AF_INET:
>                 isr = NETISR_IP;
>
> Modified: head/sys/net/if_fddisubr.c
> ==============================================================================
> --- head/sys/net/if_fddisubr.c  Fri Apr 26 12:27:30 2013        (r249924)
> +++ head/sys/net/if_fddisubr.c  Fri Apr 26 12:50:32 2013        (r249925)
> _at__at_ -96,7 +96,7 _at__at_ static const u_char fddibroadcastaddr[FD
>
>  static int fddi_resolvemulti(struct ifnet *, struct sockaddr **,
>                               struct sockaddr *);
> -static int fddi_output(struct ifnet *, struct mbuf *, struct sockaddr *,
> +static int fddi_output(struct ifnet *, struct mbuf *, const struct sockaddr *,
>                        struct route *);
>  static void fddi_input(struct ifnet *ifp, struct mbuf *m);
>
> _at__at_ -110,11 +110,8 _at__at_ static void fddi_input(struct ifnet *ifp
>   * Assumes that ifp is actually pointer to arpcom structure.
>   */
>  static int
> -fddi_output(ifp, m, dst, ro)
> -       struct ifnet *ifp;
> -       struct mbuf *m;
> -       struct sockaddr *dst;
> -       struct route *ro;
> +fddi_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst,
> +       struct route *ro)
>  {
>         u_int16_t type;
>         int loop_copy = 0, error = 0, hdrcmplt = 0;
> _at__at_ -189,19 +186,19 _at__at_ fddi_output(ifp, m, dst, ro)
>  #ifdef IPX
>         case AF_IPX:
>                 type = htons(ETHERTYPE_IPX);
> -               bcopy((caddr_t)&(((struct sockaddr_ipx *)dst)->sipx_addr.x_host),
> -                   (caddr_t)edst, FDDI_ADDR_LEN);
> +               bcopy(&((const struct sockaddr_ipx *)dst)->sipx_addr.x_host,
> +                   edst, FDDI_ADDR_LEN);
>                 break;
>  #endif /* IPX */
>  #ifdef NETATALK
>         case AF_APPLETALK: {
>             struct at_ifaddr *aa;
> -            if (!aarpresolve(ifp, m, (struct sockaddr_at *)dst, edst))
> +            if (!aarpresolve(ifp, m, (const struct sockaddr_at *)dst, edst))
>                  return (0);
>             /*
>              * ifaddr is the first thing in at_ifaddr
>              */
> -           if ((aa = at_ifawithnet( (struct sockaddr_at *)dst)) == 0)
> +           if ((aa = at_ifawithnet((const struct sockaddr_at *)dst)) == 0)
>                 goto bad;
>
>             /*
> _at__at_ -229,19 +226,21 _at__at_ fddi_output(ifp, m, dst, ro)
>
>         case pseudo_AF_HDRCMPLT:
>         {
> -               struct ether_header *eh;
> +               const struct ether_header *eh;
> +
>                 hdrcmplt = 1;
> -               eh = (struct ether_header *)dst->sa_data;
> -               bcopy((caddr_t)eh->ether_shost, (caddr_t)esrc, FDDI_ADDR_LEN);
> +               eh = (const struct ether_header *)dst->sa_data;
> +               bcopy(eh->ether_shost, esrc, FDDI_ADDR_LEN);
>                 /* FALLTHROUGH */
>         }
>
>         case AF_UNSPEC:
>         {
> -               struct ether_header *eh;
> +               const struct ether_header *eh;
> +
>                 loop_copy = -1;
> -               eh = (struct ether_header *)dst->sa_data;
> -               bcopy((caddr_t)eh->ether_dhost, (caddr_t)edst, FDDI_ADDR_LEN);
> +               eh = (const struct ether_header *)dst->sa_data;
> +               bcopy(eh->ether_dhost, edst, FDDI_ADDR_LEN);
>                 if (*edst & 1)
>                         m->m_flags |= (M_BCAST|M_MCAST);
>                 type = eh->ether_type;
>
> Modified: head/sys/net/if_fwsubr.c
> ==============================================================================
> --- head/sys/net/if_fwsubr.c    Fri Apr 26 12:27:30 2013        (r249924)
> +++ head/sys/net/if_fwsubr.c    Fri Apr 26 12:50:32 2013        (r249925)
> _at__at_ -75,7 +75,7 _at__at_ struct fw_hwaddr firewire_broadcastaddr
>  };
>
>  static int
> -firewire_output(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst,
> +firewire_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst,
>      struct route *ro)
>  {
>         struct fw_com *fc = IFP2FWC(ifp);
>
> Modified: head/sys/net/if_gif.c
> ==============================================================================
> --- head/sys/net/if_gif.c       Fri Apr 26 12:27:30 2013        (r249924)
> +++ head/sys/net/if_gif.c       Fri Apr 26 12:50:32 2013        (r249925)
> _at__at_ -422,11 +422,8 _at__at_ gif_start(struct ifnet *ifp)
>  }
>
>  int
> -gif_output(ifp, m, dst, ro)
> -       struct ifnet *ifp;
> -       struct mbuf *m;
> -       struct sockaddr *dst;
> -       struct route *ro;
> +gif_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst,
> +       struct route *ro)
>  {
>         struct gif_softc *sc = ifp->if_softc;
>         struct m_tag *mtag;
> _at__at_ -482,11 +479,10 _at__at_ gif_output(ifp, m, dst, ro)
>
>         m->m_flags &= ~(M_BCAST|M_MCAST);
>         /* BPF writes need to be handled specially. */
> -       if (dst->sa_family == AF_UNSPEC) {
> +       if (dst->sa_family == AF_UNSPEC)
>                 bcopy(dst->sa_data, &af, sizeof(af));
> -               dst->sa_family = af;
> -       }
> -       af = dst->sa_family;
> +       else
> +               af = dst->sa_family;
>         /*
>          * Now save the af in the inbound pkt csum
>          * data, this is a cheat since we are using
>
> Modified: head/sys/net/if_gif.h
> ==============================================================================
> --- head/sys/net/if_gif.h       Fri Apr 26 12:27:30 2013        (r249924)
> +++ head/sys/net/if_gif.h       Fri Apr 26 12:50:32 2013        (r249925)
> _at__at_ -112,7 +112,7 _at__at_ struct etherip_header {
>
>  /* Prototypes */
>  void gif_input(struct mbuf *, int, struct ifnet *);
> -int gif_output(struct ifnet *, struct mbuf *, struct sockaddr *,
> +int gif_output(struct ifnet *, struct mbuf *, const struct sockaddr *,
>                struct route *);
>  int gif_ioctl(struct ifnet *, u_long, caddr_t);
>  int gif_set_tunnel(struct ifnet *, struct sockaddr *, struct sockaddr *);
>
> Modified: head/sys/net/if_gre.c
> ==============================================================================
> --- head/sys/net/if_gre.c       Fri Apr 26 12:27:30 2013        (r249924)
> +++ head/sys/net/if_gre.c       Fri Apr 26 12:50:32 2013        (r249925)
> _at__at_ -113,8 +113,8 _at__at_ static void gre_clone_destroy(struct ifn
>  static struct if_clone *gre_cloner;
>
>  static int     gre_ioctl(struct ifnet *, u_long, caddr_t);
> -static int     gre_output(struct ifnet *, struct mbuf *, struct sockaddr *,
> -                   struct route *ro);
> +static int     gre_output(struct ifnet *, struct mbuf *,
> +                   const struct sockaddr *, struct route *);
>
>  static int gre_compute_route(struct gre_softc *sc);
>
> _at__at_ -241,7 +241,7 _at__at_ gre_clone_destroy(ifp)
>   * given by sc->g_proto. See also RFC 1701 and RFC 2004
>   */
>  static int
> -gre_output(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst,
> +gre_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst,
>            struct route *ro)
>  {
>         int error = 0;
> _at__at_ -333,20 +333,18 _at__at_ gre_output(struct ifnet *ifp, struct mbu
>         ip = NULL;
>
>         /* BPF writes need to be handled specially. */
> -       if (dst->sa_family == AF_UNSPEC) {
> +       if (dst->sa_family == AF_UNSPEC)
>                 bcopy(dst->sa_data, &af, sizeof(af));
> -               dst->sa_family = af;
> -       }
> -
> -       if (bpf_peers_present(ifp->if_bpf)) {
> +       else
>                 af = dst->sa_family;
> +
> +       if (bpf_peers_present(ifp->if_bpf))
>                 bpf_mtap2(ifp->if_bpf, &af, sizeof(af), m);
> -       }
>
>         m->m_flags &= ~(M_BCAST|M_MCAST);
>
>         if (sc->g_proto == IPPROTO_MOBILE) {
> -               if (dst->sa_family == AF_INET) {
> +               if (af == AF_INET) {
>                         struct mbuf *m0;
>                         int msiz;
>
> _at__at_ -417,7 +415,7 _at__at_ gre_output(struct ifnet *ifp, struct mbu
>                         goto end;
>                 }
>         } else if (sc->g_proto == IPPROTO_GRE) {
> -               switch (dst->sa_family) {
> +               switch (af) {
>                 case AF_INET:
>                         ip = mtod(m, struct ip *);
>                         gre_ip_tos = ip->ip_tos;
>
> Modified: head/sys/net/if_iso88025subr.c
> ==============================================================================
> --- head/sys/net/if_iso88025subr.c      Fri Apr 26 12:27:30 2013        (r249924)
> +++ head/sys/net/if_iso88025subr.c      Fri Apr 26 12:50:32 2013        (r249925)
> _at__at_ -231,11 +231,8 _at__at_ iso88025_ioctl(struct ifnet *ifp, u_long
>   * ISO88025 encapsulation
>   */
>  int
> -iso88025_output(ifp, m, dst, ro)
> -       struct ifnet *ifp;
> -       struct mbuf *m;
> -       struct sockaddr *dst;
> -       struct route *ro;
> +iso88025_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst,
> +       struct route *ro)
>  {
>         u_int16_t snap_type = 0;
>         int loop_copy = 0, error = 0, rif_len = 0;
> _at__at_ -351,7 +348,7 _at__at_ iso88025_output(ifp, m, dst, ro)
>  #endif /* IPX */
>         case AF_UNSPEC:
>         {
> -               struct iso88025_sockaddr_data *sd;
> +               const struct iso88025_sockaddr_data *sd;
>                 /*
>                  * For AF_UNSPEC sockaddr.sa_data must contain all of the
>                  * mac information needed to send the packet.  This allows
> _at__at_ -361,13 +358,12 _at__at_ iso88025_output(ifp, m, dst, ro)
>                  * should be an iso88025_sockaddr_data structure see iso88025.h
>                  */
>                  loop_copy = -1;
> -               sd = (struct iso88025_sockaddr_data *)dst->sa_data;
> +               sd = (const struct iso88025_sockaddr_data *)dst->sa_data;
>                 gen_th.ac = sd->ac;
>                 gen_th.fc = sd->fc;
> -               (void)memcpy((caddr_t)edst, (caddr_t)sd->ether_dhost,
> -                            ISO88025_ADDR_LEN);
> -               (void)memcpy((caddr_t)gen_th.iso88025_shost,
> -                            (caddr_t)sd->ether_shost, ISO88025_ADDR_LEN);
> +               (void)memcpy(edst, sd->ether_dhost, ISO88025_ADDR_LEN);
> +               (void)memcpy(gen_th.iso88025_shost, sd->ether_shost,
> +                   ISO88025_ADDR_LEN);
>                 rif_len = 0;
>                 break;
>         }
>
> Modified: head/sys/net/if_lagg.c
> ==============================================================================
> --- head/sys/net/if_lagg.c      Fri Apr 26 12:27:30 2013        (r249924)
> +++ head/sys/net/if_lagg.c      Fri Apr 26 12:50:32 2013        (r249925)
> _at__at_ -99,7 +99,7 _at__at_ static void   lagg_linkstate(struct lagg_s
>  static void    lagg_port_state(struct ifnet *, int);
>  static int     lagg_port_ioctl(struct ifnet *, u_long, caddr_t);
>  static int     lagg_port_output(struct ifnet *, struct mbuf *,
> -                   struct sockaddr *, struct route *);
> +                   const struct sockaddr *, struct route *);
>  static void    lagg_port_ifdetach(void *arg __unused, struct ifnet *);
>  #ifdef LAGG_PORT_STACKING
>  static int     lagg_port_checkstacking(struct lagg_softc *);
> _at__at_ -787,7 +787,7 _at__at_ fallback:
>   */
>  static int
>  lagg_port_output(struct ifnet *ifp, struct mbuf *m,
> -       struct sockaddr *dst, struct route *ro)
> +       const struct sockaddr *dst, struct route *ro)
>  {
>         struct lagg_port *lp = ifp->if_lagg;
>
>
> Modified: head/sys/net/if_lagg.h
> ==============================================================================
> --- head/sys/net/if_lagg.h      Fri Apr 26 12:27:30 2013        (r249924)
> +++ head/sys/net/if_lagg.h      Fri Apr 26 12:50:32 2013        (r249925)
> _at__at_ -245,8 +245,8 _at__at_ struct lagg_port {
>
>         /* Redirected callbacks */
>         int     (*lp_ioctl)(struct ifnet *, u_long, caddr_t);
> -       int     (*lp_output)(struct ifnet *, struct mbuf *, struct sockaddr *,
> -                    struct route *);
> +       int     (*lp_output)(struct ifnet *, struct mbuf *,
> +                    const struct sockaddr *, struct route *);
>
>         SLIST_ENTRY(lagg_port)          lp_entries;
>  };
>
> Modified: head/sys/net/if_loop.c
> ==============================================================================
> --- head/sys/net/if_loop.c      Fri Apr 26 12:27:30 2013        (r249924)
> +++ head/sys/net/if_loop.c      Fri Apr 26 12:50:32 2013        (r249925)
> _at__at_ -101,7 +101,7 _at__at_
>  int            loioctl(struct ifnet *, u_long, caddr_t);
>  static void    lortrequest(int, struct rtentry *, struct rt_addrinfo *);
>  int            looutput(struct ifnet *ifp, struct mbuf *m,
> -                   struct sockaddr *dst, struct route *ro);
> +                   const struct sockaddr *dst, struct route *ro);
>  static int     lo_clone_create(struct if_clone *, int, caddr_t);
>  static void    lo_clone_destroy(struct ifnet *);
>
> _at__at_ -210,7 +210,7 _at__at_ static moduledata_t loop_mod = {
>  DECLARE_MODULE(if_lo, loop_mod, SI_SUB_PROTO_IFATTACHDOMAIN, SI_ORDER_ANY);
>
>  int
> -looutput(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst,
> +looutput(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst,
>      struct route *ro)
>  {
>         u_int32_t af;
> _at__at_ -241,13 +241,13 _at__at_ looutput(struct ifnet *ifp, struct mbuf
>         ifp->if_obytes += m->m_pkthdr.len;
>
>         /* BPF writes need to be handled specially. */
> -       if (dst->sa_family == AF_UNSPEC) {
> +       if (dst->sa_family == AF_UNSPEC)
>                 bcopy(dst->sa_data, &af, sizeof(af));
> -               dst->sa_family = af;
> -       }
> +       else
> +               af = dst->sa_family;
>
>  #if 1  /* XXX */
> -       switch (dst->sa_family) {
> +       switch (af) {
>         case AF_INET:
>                 if (ifp->if_capenable & IFCAP_RXCSUM) {
>                         m->m_pkthdr.csum_data = 0xffff;
> _at__at_ -276,12 +276,12 _at__at_ looutput(struct ifnet *ifp, struct mbuf
>         case AF_APPLETALK:
>                 break;
>         default:
> -               printf("looutput: af=%d unexpected\n", dst->sa_family);
> +               printf("looutput: af=%d unexpected\n", af);
>                 m_freem(m);
>                 return (EAFNOSUPPORT);
>         }
>  #endif
> -       return (if_simloop(ifp, m, dst->sa_family, 0));
> +       return (if_simloop(ifp, m, af, 0));
>  }
>
>  /*
>
> Modified: head/sys/net/if_spppsubr.c
> ==============================================================================
> --- head/sys/net/if_spppsubr.c  Fri Apr 26 12:27:30 2013        (r249924)
> +++ head/sys/net/if_spppsubr.c  Fri Apr 26 12:50:32 2013        (r249925)
> _at__at_ -262,7 +262,7 _at__at_ static const u_short interactive_ports[8
>         int debug = ifp->if_flags & IFF_DEBUG
>
>  static int sppp_output(struct ifnet *ifp, struct mbuf *m,
> -                      struct sockaddr *dst, struct route *ro);
> +       const struct sockaddr *dst, struct route *ro);
>
>  static void sppp_cisco_send(struct sppp *sp, int type, long par1, long par2);
>  static void sppp_cisco_input(struct sppp *sp, struct mbuf *m);
> _at__at_ -785,8 +785,8 _at__at_ sppp_ifstart(struct ifnet *ifp)
>   * Enqueue transmit packet.
>   */
>  static int
> -sppp_output(struct ifnet *ifp, struct mbuf *m,
> -           struct sockaddr *dst, struct route *ro)
> +sppp_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst,
> +       struct route *ro)
>  {
>         struct sppp *sp = IFP2SP(ifp);
>         struct ppp_header *h;
>
> Modified: head/sys/net/if_stf.c
> ==============================================================================
> --- head/sys/net/if_stf.c       Fri Apr 26 12:27:30 2013        (r249924)
> +++ head/sys/net/if_stf.c       Fri Apr 26 12:50:32 2013        (r249925)
> _at__at_ -140,7 +140,7 _at__at_ SYSCTL_INT(_net_link_stf, OID_AUTO, perm
>   * XXX: Return a pointer with 16-bit aligned.  Don't cast it to
>   * struct in_addr *; use bcopy() instead.
>   */
> -#define GET_V4(x)      ((caddr_t)(&(x)->s6_addr16[1]))
> +#define GET_V4(x)      (&(x)->s6_addr16[1])
>
>  struct stf_softc {
>         struct ifnet    *sc_ifp;
> _at__at_ -181,7 +181,7 _at__at_ static char *stfnames[] = {"stf0", "stf"
>  static int stfmodevent(module_t, int, void *);
>  static int stf_encapcheck(const struct mbuf *, int, int, void *);
>  static struct in6_ifaddr *stf_getsrcifa6(struct ifnet *);
> -static int stf_output(struct ifnet *, struct mbuf *, struct sockaddr *,
> +static int stf_output(struct ifnet *, struct mbuf *, const struct sockaddr *,
>         struct route *);
>  static int isrfc1918addr(struct in_addr *);
>  static int stf_checkaddr4(struct stf_softc *, struct in_addr *,
> _at__at_ -413,23 +413,19 _at__at_ stf_getsrcifa6(ifp)
>  }
>
>  static int
> -stf_output(ifp, m, dst, ro)
> -       struct ifnet *ifp;
> -       struct mbuf *m;
> -       struct sockaddr *dst;
> -       struct route *ro;
> +stf_output(struct ifnet *ifp, struct mbuf *m, const struct sockaddr *dst,
> +       struct route *ro)
>  {
>         struct stf_softc *sc;
> -       struct sockaddr_in6 *dst6;
> +       const struct sockaddr_in6 *dst6;
>         struct route *cached_route;
>         struct in_addr in4;
> -       caddr_t ptr;
> +       const void *ptr;
>         struct sockaddr_in *dst4;
>         u_int8_t tos;
>         struct ip *ip;
>         struct ip6_hdr *ip6;
>         struct in6_ifaddr *ia6;
> -       u_int32_t af;
>         int error;
>
>  #ifdef MAC
> _at__at_ -441,7 +437,7 _at__at_ stf_output(ifp, m, dst, ro)
>  #endif
>
>         sc = ifp->if_softc;
> -       dst6 = (struct sockaddr_in6 *)dst;
> +       dst6 = (const struct sockaddr_in6 *)dst;
>
>         /* just in case */
>         if ((ifp->if_flags & IFF_UP) == 0) {
> _at__at_ -474,15 +470,6 _at__at_ stf_output(ifp, m, dst, ro)
>         tos = (ntohl(ip6->ip6_flow) >> 20) & 0xff;
>
>         /*
> -        * BPF writes need to be handled specially.
> -        * This is a null operation, nothing here checks dst->sa_family.
> -        */
> -       if (dst->sa_family == AF_UNSPEC) {
> -               bcopy(dst->sa_data, &af, sizeof(af));
> -               dst->sa_family = af;
> -       }
> -
> -       /*
>          * Pickup the right outer dst addr from the list of candidates.
>          * ip6_dst has priority as it may be able to give us shorter IPv4 hops.
>          */
> _at__at_ -507,7 +494,7 _at__at_ stf_output(ifp, m, dst, ro)
>                  * will only read from the mbuf (i.e., it won't
>                  * try to free it or keep a pointer a to it).
>                  */
> -               af = AF_INET6;
> +               u_int af = AF_INET6;
>                 bpf_mtap2(ifp->if_bpf, &af, sizeof(af), m);
>         }
>
>
> Modified: head/sys/net/if_tun.c
> ==============================================================================
> --- head/sys/net/if_tun.c       Fri Apr 26 12:27:30 2013        (r249924)
> +++ head/sys/net/if_tun.c       Fri Apr 26 12:50:32 2013        (r249925)
> _at__at_ -128,8 +128,8 _at__at_ static void tuncreate(const char *name,
>  static int     tunifioctl(struct ifnet *, u_long, caddr_t);
>  static void    tuninit(struct ifnet *);
>  static int     tunmodevent(module_t, int, void *);
> -static int     tunoutput(struct ifnet *, struct mbuf *, struct sockaddr *,
> -                   struct route *ro);
> +static int     tunoutput(struct ifnet *, struct mbuf *,
> +                   const struct sockaddr *, struct route *ro);
>  static void    tunstart(struct ifnet *);
>
>  static int     tun_clone_create(struct if_clone *, int, caddr_t);
> _at__at_ -575,7 +575,7 _at__at_ tunifioctl(struct ifnet *ifp, u_long cmd
>   * tunoutput - queue packets from higher level ready to put out.
>   */
>  static int
> -tunoutput(struct ifnet *ifp, struct mbuf *m0, struct sockaddr *dst,
> +tunoutput(struct ifnet *ifp, struct mbuf *m0, const struct sockaddr *dst,
>      struct route *ro)
>  {
>         struct tun_softc *tp = ifp->if_softc;
> _at__at_ -609,15 +609,13 _at__at_ tunoutput(struct ifnet *ifp, struct mbuf
>         }
>
>         /* BPF writes need to be handled specially. */
> -       if (dst->sa_family == AF_UNSPEC) {
> +       if (dst->sa_family == AF_UNSPEC)
>                 bcopy(dst->sa_data, &af, sizeof(af));
> -               dst->sa_family = af;
> -       }
> -
> -       if (bpf_peers_present(ifp->if_bpf)) {
> +       else
>                 af = dst->sa_family;
> +
> +       if (bpf_peers_present(ifp->if_bpf))
>                 bpf_mtap2(ifp->if_bpf, &af, sizeof(af), m0);
> -       }
>
>         /* prepend sockaddr? this may abort if the mbuf allocation fails */
>         if (cached_tun_flags & TUN_LMODE) {
> _at__at_ -644,10 +642,10 _at__at_ tunoutput(struct ifnet *ifp, struct mbuf
>                         ifp->if_oerrors++;
>                         return (ENOBUFS);
>                 } else
> -                       *(u_int32_t *)m0->m_data = htonl(dst->sa_family);
> +                       *(u_int32_t *)m0->m_data = htonl(af);
>         } else {
>  #ifdef INET
> -               if (dst->sa_family != AF_INET)
> +               if (af != AF_INET)
>  #endif
>                 {
>                         m_freem(m0);
>
> Modified: head/sys/net/if_var.h
> ==============================================================================
> --- head/sys/net/if_var.h       Fri Apr 26 12:27:30 2013        (r249924)
> +++ head/sys/net/if_var.h       Fri Apr 26 12:50:32 2013        (r249925)
> _at__at_ -158,7 +158,7 _at__at_ struct ifnet {
>         int     if_amcount;             /* number of all-multicast requests */
>  /* procedure handles */
>         int     (*if_output)            /* output routine (enqueue) */
> -               (struct ifnet *, struct mbuf *, struct sockaddr *,
> +               (struct ifnet *, struct mbuf *, const struct sockaddr *,
>                      struct route *);
>         void    (*if_input)             /* input routine (from h/w driver) */
>                 (struct ifnet *, struct mbuf *);
>
> Modified: head/sys/net/iso88025.h
> ==============================================================================
> --- head/sys/net/iso88025.h     Fri Apr 26 12:27:30 2013        (r249924)
> +++ head/sys/net/iso88025.h     Fri Apr 26 12:50:32 2013        (r249925)
> _at__at_ -165,8 +165,8 _at__at_ struct      iso88025_addr {
>  void   iso88025_ifattach       (struct ifnet *, const u_int8_t *, int);
>  void   iso88025_ifdetach       (struct ifnet *, int);
>  int    iso88025_ioctl          (struct ifnet *, u_long, caddr_t );
> -int    iso88025_output         (struct ifnet *, struct mbuf *, struct sockaddr *,
> -                                struct route *);
> +int    iso88025_output         (struct ifnet *, struct mbuf *,
> +                                const struct sockaddr *, struct route *);
>  void   iso88025_input          (struct ifnet *, struct mbuf *);
>
>  #endif
>
> Modified: head/sys/net80211/ieee80211.c
> ==============================================================================
> --- head/sys/net80211/ieee80211.c       Fri Apr 26 12:27:30 2013        (r249924)
> +++ head/sys/net80211/ieee80211.c       Fri Apr 26 12:50:32 2013        (r249925)
> _at__at_ -243,7 +243,7 _at__at_ null_transmit(struct ifnet *ifp, struct
>
>  static int
>  null_output(struct ifnet *ifp, struct mbuf *m,
> -       struct sockaddr *dst, struct route *ro)
> +       const struct sockaddr *dst, struct route *ro)
>  {
>         if_printf(ifp, "discard raw packet\n");
>         return null_transmit(ifp, m);
>
> Modified: head/sys/net80211/ieee80211_output.c
> ==============================================================================
> --- head/sys/net80211/ieee80211_output.c        Fri Apr 26 12:27:30 2013        (r249924)
> +++ head/sys/net80211/ieee80211_output.c        Fri Apr 26 12:50:32 2013        (r249925)
> _at__at_ -450,7 +450,7 _at__at_ ieee80211_raw_output(struct ieee80211vap
>   */
>  int
>  ieee80211_output(struct ifnet *ifp, struct mbuf *m,
> -       struct sockaddr *dst, struct route *ro)
> +       const struct sockaddr *dst, struct route *ro)
>  {
>  #define senderr(e) do { error = (e); goto bad;} while (0)
>         struct ieee80211_node *ni = NULL;
>
> Modified: head/sys/net80211/ieee80211_proto.h
> ==============================================================================
> --- head/sys/net80211/ieee80211_proto.h Fri Apr 26 12:27:30 2013        (r249924)
> +++ head/sys/net80211/ieee80211_proto.h Fri Apr 26 12:50:32 2013        (r249925)
> _at__at_ -97,7 +97,7 _at__at_ int   ieee80211_mgmt_output(struct ieee802
>  int    ieee80211_raw_xmit(struct ieee80211_node *, struct mbuf *,
>                 const struct ieee80211_bpf_params *);
>  int    ieee80211_output(struct ifnet *, struct mbuf *,
> -               struct sockaddr *, struct route *ro);
> +               const struct sockaddr *, struct route *ro);
>  int    ieee80211_raw_output(struct ieee80211vap *, struct ieee80211_node *,
>                 struct mbuf *, const struct ieee80211_bpf_params *);
>  void   ieee80211_send_setup(struct ieee80211_node *, struct mbuf *, int, int,
>
> Modified: head/sys/net80211/ieee80211_var.h
> ==============================================================================
> --- head/sys/net80211/ieee80211_var.h   Fri Apr 26 12:27:30 2013        (r249924)
> +++ head/sys/net80211/ieee80211_var.h   Fri Apr 26 12:50:32 2013        (r249925)
> _at__at_ -497,7 +497,7 _at__at_ struct ieee80211vap {
>                                     enum ieee80211_state, int);
>         /* 802.3 output method for raw frame xmit */
>         int                     (*iv_output)(struct ifnet *, struct mbuf *,
> -                                   struct sockaddr *, struct route *);
> +                                   const struct sockaddr *, struct route *);
>         uint64_t                iv_spare[6];
>  };
>  MALLOC_DECLARE(M_80211_VAP);
>
> Modified: head/sys/netatalk/aarp.c
> ==============================================================================
> --- head/sys/netatalk/aarp.c    Fri Apr 26 12:27:30 2013        (r249924)
> +++ head/sys/netatalk/aarp.c    Fri Apr 26 12:50:32 2013        (r249925)
> _at__at_ -147,7 +147,7 _at__at_ aarptimer(void *ignored)
>   * unlocked variant returns a reference that the caller must dispose of.
>   */
>  struct at_ifaddr *
>
> *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Received on Fri Apr 26 2013 - 15:01:41 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:37 UTC