Module Name: src
Committed By: maxv
Date: Wed Feb 7 11:42:58 UTC 2018
Modified Files:
src/sys/netinet: igmp.c ip_mroute.c ip_mroute.h
Log Message:
Remove RSVP_ISI, that's mostly dead code. FreeBSD and OpenBSD too removed
it; FreeBSD kept some pieces but they are mostly no-opts.
Sent on tech-net@, no comment.
To generate a diff of this commit:
cvs rdiff -u -r1.65 -r1.66 src/sys/netinet/igmp.c
cvs rdiff -u -r1.148 -r1.149 src/sys/netinet/ip_mroute.c
cvs rdiff -u -r1.31 -r1.32 src/sys/netinet/ip_mroute.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/netinet/igmp.c
diff -u src/sys/netinet/igmp.c:1.65 src/sys/netinet/igmp.c:1.66
--- src/sys/netinet/igmp.c:1.65 Fri Nov 17 07:37:12 2017
+++ src/sys/netinet/igmp.c Wed Feb 7 11:42:58 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: igmp.c,v 1.65 2017/11/17 07:37:12 ozaki-r Exp $ */
+/* $NetBSD: igmp.c,v 1.66 2018/02/07 11:42:58 maxv Exp $ */
/*
* Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -40,7 +40,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: igmp.c,v 1.65 2017/11/17 07:37:12 ozaki-r Exp $");
+__KERNEL_RCSID(0, "$NetBSD: igmp.c,v 1.66 2018/02/07 11:42:58 maxv Exp $");
#ifdef _KERNEL_OPT
#include "opt_mrouting.h"
@@ -632,9 +632,7 @@ igmp_sendpkt(struct in_multi *inm, int t
imo.imo_multicast_if_index = if_get_index(inm->inm_ifp);
imo.imo_multicast_ttl = 1;
-#ifdef RSVP_ISI
- imo.imo_multicast_vif = -1;
-#endif
+
/*
* Request loopback of the report if we are acting as a multicast
* router, so that the process-level routing demon can hear it.
Index: src/sys/netinet/ip_mroute.c
diff -u src/sys/netinet/ip_mroute.c:1.148 src/sys/netinet/ip_mroute.c:1.149
--- src/sys/netinet/ip_mroute.c:1.148 Wed Nov 15 10:42:41 2017
+++ src/sys/netinet/ip_mroute.c Wed Feb 7 11:42:57 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: ip_mroute.c,v 1.148 2017/11/15 10:42:41 knakahara Exp $ */
+/* $NetBSD: ip_mroute.c,v 1.149 2018/02/07 11:42:57 maxv Exp $ */
/*
* Copyright (c) 1992, 1993
@@ -93,7 +93,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ip_mroute.c,v 1.148 2017/11/15 10:42:41 knakahara Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ip_mroute.c,v 1.149 2018/02/07 11:42:57 maxv Exp $");
#ifdef _KERNEL_OPT
#include "opt_inet.h"
@@ -178,14 +178,6 @@ u_int mrtdebug = 0; /* debug level *
#define VIFI_INVALID ((vifi_t) -1)
u_int tbfdebug = 0; /* tbf debug level */
-#ifdef RSVP_ISI
-u_int rsvpdebug = 0; /* rsvp debug level */
-#define RSVP_DPRINTF(a) do if (rsvpdebug) printf a; while (/*CONSTCOND*/0)
-extern struct socket *ip_rsvpd;
-extern int rsvp_on;
-#else
-#define RSVP_DPRINTF(a) do {} while (/*CONSTCOND*/0)
-#endif /* RSVP_ISI */
/* vif attachment using sys/netinet/ip_encap.c */
static void vif_input(struct mbuf *, int, int, void *);
@@ -224,11 +216,7 @@ static int del_mfc(struct sockopt *);
static int set_api_config(struct sockopt *); /* chose API capabilities */
static int socket_send(struct socket *, struct mbuf *, struct sockaddr_in *);
static void expire_upcalls(void *);
-#ifdef RSVP_ISI
-static int ip_mdq(struct mbuf *, struct ifnet *, struct mfc *, vifi_t);
-#else
static int ip_mdq(struct mbuf *, struct ifnet *, struct mfc *);
-#endif
static void phyint_send(struct ip *, struct vif *, struct mbuf *);
static void encap_send(struct ip *, struct vif *, struct mbuf *);
static void tbf_control(struct vif *, struct mbuf *, struct ip *, u_int32_t);
@@ -905,11 +893,6 @@ add_vif(struct vifctl *vifcp)
callout_init(&vifp->v_repq_ch, 0);
-#ifdef RSVP_ISI
- vifp->v_rsvp_on = 0;
- vifp->v_rsvpd = NULL;
-#endif /* RSVP_ISI */
-
splx(s);
/* Adjust numvifs up if the vifi is higher than numvifs. */
@@ -1135,11 +1118,7 @@ add_mfc(struct sockopt *sopt)
for (; rte != NULL; rte = nrte) {
nrte = rte->next;
if (rte->ifp) {
-#ifdef RSVP_ISI
- ip_mdq(rte->m, rte->ifp, rt, -1);
-#else
ip_mdq(rte->m, rte->ifp, rt);
-#endif /* RSVP_ISI */
}
m_freem(rte->m);
#ifdef UPCALL_TIMING
@@ -1302,11 +1281,7 @@ socket_send(struct socket *s, struct mbu
#define TUNNEL_LEN 12 /* # bytes of IP option for tunnel encapsulation */
int
-#ifdef RSVP_ISI
-ip_mforward(struct mbuf *m, struct ifnet *ifp, struct ip_moptions *imo)
-#else
ip_mforward(struct mbuf *m, struct ifnet *ifp)
-#endif /* RSVP_ISI */
{
struct ip *ip = mtod(m, struct ip *);
struct mfc *rt;
@@ -1344,27 +1319,6 @@ ip_mforward(struct mbuf *m, struct ifnet
*/
m->m_pkthdr.csum_flags = 0;
-#ifdef RSVP_ISI
- if (imo && ((vifi = imo->imo_multicast_vif) < numvifs)) {
- if (ip->ip_ttl < MAXTTL)
- ip->ip_ttl++; /* compensate for -1 in *_send routines */
- if (ip->ip_p == IPPROTO_RSVP) {
- struct vif *vifp = viftable + vifi;
- RSVP_DPRINTF(("%s: Sending IPPROTO_RSVP from %x to %x"
- " on vif %d (%s%s)\n", __func__,
- ntohl(ip->ip_src), ntohl(ip->ip_dst), vifi,
- (vifp->v_flags & VIFF_TUNNEL) ? "tunnel on " : "",
- vifp->v_ifp->if_xname));
- }
- return (ip_mdq(m, ifp, NULL, vifi));
- }
- if (ip->ip_p == IPPROTO_RSVP) {
- RSVP_DPRINTF(("%s: Warning: IPPROTO_RSVP from %x to %x"
- " without vif option\n", __func__,
- ntohl(ip->ip_src), ntohl(ip->ip_dst));
- }
-#endif /* RSVP_ISI */
-
/*
* Don't forward a packet with time-to-live of zero or one,
* or a packet destined to a local-only group.
@@ -1382,11 +1336,7 @@ ip_mforward(struct mbuf *m, struct ifnet
/* Entry exists, so forward if necessary */
if (rt != NULL) {
splx(s);
-#ifdef RSVP_ISI
- return (ip_mdq(m, ifp, rt, -1));
-#else
return (ip_mdq(m, ifp, rt));
-#endif /* RSVP_ISI */
} else {
/*
* If we don't have a route for packet's origin,
@@ -1611,11 +1561,7 @@ expire_upcalls(void *v)
* Packet forwarding routine once entry in the cache is made
*/
static int
-#ifdef RSVP_ISI
-ip_mdq(struct mbuf *m, struct ifnet *ifp, struct mfc *rt, vifi_t xmt_vif)
-#else
ip_mdq(struct mbuf *m, struct ifnet *ifp, struct mfc *rt)
-#endif /* RSVP_ISI */
{
struct ip *ip = mtod(m, struct ip *);
vifi_t vifi;
@@ -1635,23 +1581,6 @@ ip_mdq(struct mbuf *m, struct ifnet *ifp
phyint_send((ip), (vifp), (m)); \
} while (/*CONSTCOND*/ 0)
-#ifdef RSVP_ISI
- /*
- * If xmt_vif is not -1, send on only the requested vif.
- *
- * (since vifi_t is u_short, -1 becomes MAXUSHORT, which > numvifs.
- */
- if (xmt_vif < numvifs) {
-#ifdef PIM
- if (viftable[xmt_vif].v_flags & VIFF_REGISTER)
- pim_register_send(ip, viftable + xmt_vif, m, rt);
- else
-#endif
- MC_SEND(ip, viftable + xmt_vif, m);
- return (1);
- }
-#endif /* RSVP_ISI */
-
/*
* Don't forward if it didn't arrive from the parent vif for its origin.
*/
@@ -1777,20 +1706,6 @@ ip_mdq(struct mbuf *m, struct ifnet *ifp
return (0);
}
-#ifdef RSVP_ISI
-/*
- * check if a vif number is legal/ok. This is used by ip_output.
- */
-int
-legal_vif_num(int vif)
-{
- if (vif >= 0 && vif < numvifs)
- return (1);
- else
- return (0);
-}
-#endif /* RSVP_ISI */
-
static void
phyint_send(struct ip *ip, struct vif *vifp, struct mbuf *m)
{
@@ -2122,9 +2037,6 @@ tbf_send_packet(struct vif *vifp, struct
imo.imo_multicast_if_index = if_get_index(vifp->v_ifp);
imo.imo_multicast_ttl = mtod(m, struct ip *)->ip_ttl - 1;
imo.imo_multicast_loop = 1;
-#ifdef RSVP_ISI
- imo.imo_multicast_vif = -1;
-#endif
error = ip_output(m, NULL, NULL, IP_FORWARDING|IP_MULTICASTOPTS,
&imo, NULL);
@@ -2207,214 +2119,6 @@ priority(struct vif *vifp, struct ip *ip
}
/*
- * End of token bucket filter modifications
- */
-#ifdef RSVP_ISI
-int
-ip_rsvp_vif_init(struct socket *so, struct mbuf *m)
-{
- int vifi, s;
-
- RSVP_DPRINTF(("%s: so_type = %d, pr_protocol = %d\n", __func__
- so->so_type, so->so_proto->pr_protocol));
-
- if (so->so_type != SOCK_RAW ||
- so->so_proto->pr_protocol != IPPROTO_RSVP)
- return (EOPNOTSUPP);
-
- /* Check mbuf. */
- if (m == NULL || m->m_len != sizeof(int)) {
- return (EINVAL);
- }
- vifi = *(mtod(m, int *));
-
- RSVP_DPRINTF(("%s: vif = %d rsvp_on = %d\n", __func__, vifi, rsvp_on));
-
- s = splsoftnet();
-
- /* Check vif. */
- if (!legal_vif_num(vifi)) {
- splx(s);
- return (EADDRNOTAVAIL);
- }
-
- /* Check if socket is available. */
- if (viftable[vifi].v_rsvpd != NULL) {
- splx(s);
- return (EADDRINUSE);
- }
-
- viftable[vifi].v_rsvpd = so;
- /*
- * This may seem silly, but we need to be sure we don't over-increment
- * the RSVP counter, in case something slips up.
- */
- if (!viftable[vifi].v_rsvp_on) {
- viftable[vifi].v_rsvp_on = 1;
- rsvp_on++;
- }
-
- splx(s);
- return (0);
-}
-
-int
-ip_rsvp_vif_done(struct socket *so, struct mbuf *m)
-{
- int vifi, s;
-
- RSVP_DPRINTF(("%s: so_type = %d, pr_protocol = %d\n", __func__,
- so->so_type, so->so_proto->pr_protocol));
-
- if (so->so_type != SOCK_RAW ||
- so->so_proto->pr_protocol != IPPROTO_RSVP)
- return (EOPNOTSUPP);
-
- /* Check mbuf. */
- if (m == NULL || m->m_len != sizeof(int)) {
- return (EINVAL);
- }
- vifi = *(mtod(m, int *));
-
- s = splsoftnet();
-
- /* Check vif. */
- if (!legal_vif_num(vifi)) {
- splx(s);
- return (EADDRNOTAVAIL);
- }
-
- RSVP_DPRINTF(("%s: v_rsvpd = %x so = %x\n", __func__,
- viftable[vifi].v_rsvpd, so));
-
- viftable[vifi].v_rsvpd = NULL;
- /*
- * This may seem silly, but we need to be sure we don't over-decrement
- * the RSVP counter, in case something slips up.
- */
- if (viftable[vifi].v_rsvp_on) {
- viftable[vifi].v_rsvp_on = 0;
- rsvp_on--;
- }
-
- splx(s);
- return (0);
-}
-
-void
-ip_rsvp_force_done(struct socket *so)
-{
- int vifi, s;
-
- /* Don't bother if it is not the right type of socket. */
- if (so->so_type != SOCK_RAW ||
- so->so_proto->pr_protocol != IPPROTO_RSVP)
- return;
-
- s = splsoftnet();
-
- /*
- * The socket may be attached to more than one vif...this
- * is perfectly legal.
- */
- for (vifi = 0; vifi < numvifs; vifi++) {
- if (viftable[vifi].v_rsvpd == so) {
- viftable[vifi].v_rsvpd = NULL;
- /*
- * This may seem silly, but we need to be sure we don't
- * over-decrement the RSVP counter, in case something
- * slips up.
- */
- if (viftable[vifi].v_rsvp_on) {
- viftable[vifi].v_rsvp_on = 0;
- rsvp_on--;
- }
- }
- }
-
- splx(s);
- return;
-}
-
-void
-rsvp_input(struct mbuf *m, struct ifnet *ifp)
-{
- int vifi, s;
- struct ip *ip = mtod(m, struct ip *);
- struct sockaddr_in rsvp_src;
-
- RSVP_DPRINTF(("%s: rsvp_on %d\n", __func__, rsvp_on));
-
- /*
- * Can still get packets with rsvp_on = 0 if there is a local member
- * of the group to which the RSVP packet is addressed. But in this
- * case we want to throw the packet away.
- */
- if (!rsvp_on) {
- m_freem(m);
- return;
- }
-
- /*
- * If the old-style non-vif-associated socket is set, then use
- * it and ignore the new ones.
- */
- if (ip_rsvpd != NULL) {
- RSVP_DPRINTF(("%s: Sending packet up old-style socket\n",
- __func__));
- rip_input(m); /*XXX*/
- return;
- }
-
- s = splsoftnet();
-
- RSVP_DPRINTF(("%s: check vifs\n", __func__));
-
- /* Find which vif the packet arrived on. */
- for (vifi = 0; vifi < numvifs; vifi++) {
- if (viftable[vifi].v_ifp == ifp)
- break;
- }
-
- if (vifi == numvifs) {
- /* Can't find vif packet arrived on. Drop packet. */
- RSVP_DPRINTF("%s: Can't find vif for packet...dropping it.\n",
- __func__));
- m_freem(m);
- splx(s);
- return;
- }
-
- RSVP_DPRINTF(("%s: check socket\n", __func__));
-
- if (viftable[vifi].v_rsvpd == NULL) {
- /*
- * drop packet, since there is no specific socket for this
- * interface
- */
- RSVP_DPRINTF(("%s: No socket defined for vif %d\n", __func__,
- vifi));
- m_freem(m);
- splx(s);
- return;
- }
-
- sockaddr_in_init(&rsvp_src, &ip->ip_src, 0);
-
- if (m)
- RSVP_DPRINTF(("%s: m->m_len = %d, sbspace() = %d\n", __func__,
- m->m_len, sbspace(&viftable[vifi].v_rsvpd->so_rcv)));
-
- if (socket_send(viftable[vifi].v_rsvpd, m, &rsvp_src) < 0)
- RSVP_DPRINTF(("%s: Failed to append to socket\n", __func__));
- else
- RSVP_DPRINTF(("%s: send packet up\n", __func__));
-
- splx(s);
-}
-#endif /* RSVP_ISI */
-
-/*
* Code for bandwidth monitors
*/
Index: src/sys/netinet/ip_mroute.h
diff -u src/sys/netinet/ip_mroute.h:1.31 src/sys/netinet/ip_mroute.h:1.32
--- src/sys/netinet/ip_mroute.h:1.31 Thu Aug 7 06:20:14 2008
+++ src/sys/netinet/ip_mroute.h Wed Feb 7 11:42:58 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: ip_mroute.h,v 1.31 2008/08/07 06:20:14 cegger Exp $ */
+/* $NetBSD: ip_mroute.h,v 1.32 2018/02/07 11:42:58 maxv Exp $ */
#ifndef _NETINET_IP_MROUTE_H_
#define _NETINET_IP_MROUTE_H_
@@ -242,10 +242,6 @@ struct vif {
u_long v_bytes_out; /* # bytes out on interface */
struct route v_route; /* cached route if this is a tunnel */
callout_t v_repq_ch; /* for tbf_reprocess_q() */
-#ifdef RSVP_ISI
- int v_rsvp_on; /* # RSVP listening on this vif */
- struct socket *v_rsvpd; /* # RSVPD daemon */
-#endif /* RSVP_ISI */
const struct encaptab *v_encap_cookie;
};
@@ -342,16 +338,7 @@ int mrt_ioctl(struct socket *, u_long, v
int ip_mrouter_done(void);
void ip_mrouter_detach(struct ifnet *);
void reset_vif(struct vif *);
-#ifdef RSVP_ISI
-int ip_mforward(struct mbuf *, struct ifnet *, struct ip_moptions *);
-int legal_vif_num(int);
-int ip_rsvp_vif_init(struct socket *, struct mbuf *);
-int ip_rsvp_vif_done(struct socket *, struct mbuf *);
-void ip_rsvp_force_done(struct socket *);
-void rsvp_input(struct mbuf *, int, int);
-#else
int ip_mforward(struct mbuf *, struct ifnet *);
-#endif
#endif /* _KERNEL */