[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[altq 6] Re: pvc subinterfaces and mrouted




The patch didn't work.  This is the output I receive when
starting mrouted:

debug level 2
13:00:11.069 mrouted version 3.8a
May 21 13:00:11 queen mrouted[200]: mrouted version 3.8a
13:00:11.128 Getting vifs from kernel interfaces
13:00:11.129 installing fxp0 (10.200.1.1 on subnet 10.200/16) as vif #0 - rate=0
13:00:11.130 installing ep0 (198.119.22.25 on subnet 198.119.22.0/25) as vif #1 
- rate=0
13:00:11.130 installing pvc0 (10.5.1.2 on subnet 10.5/16) as vif #2 - rate=0
13:00:11.131 Getting vifs from /etc/mrouted.conf
13:00:11.154 Installing vifs in mrouted...
13:00:11.154 vif #0, phyint 10.200.1.1
13:00:11.156 vif #2, phyint 10.5.1.2
13:00:11.157 warning - can't join group 224.0.0.4 on interface 10.5.1.2: No 
buffer space available
13:00:11.159 warning - can't join group 224.0.0.2 on interface 10.5.1.2: No 
buffer space available
May 21 13:00:11 queen mrouted[200]: warning - can't join group 224.0.0.4 on 
interface 10.5.1.2: No buffer space available
May 21 13:00:11 queen mrouted[200]: warning - can't join group 224.0.0.2 on 
interface 10.5.1.2: No buffer space available
pruning on
13:00:11.213 Installing vifs in kernel...
13:00:11.214 vif #0, phyint 10.200.1.1
13:00:11.215 vif #2, phyint 10.5.1.2
13:00:11.215 setsockopt MRT_ADD_VIF: Invalid argument
May 21 13:00:11 queen mrouted[200]: setsockopt MRT_ADD_VIF: Invalid argument
May 21 13:00:11 queen mrouted[200]: setsockopt MRT_ADD_VIF: Invalid argument


> 
> Oops!  Isn't it EINVAL for the MRT_ADD_VIF ioctl instead of ENOBUFS?
> I forgot to allow the en driver to change if_flags in altq-1.2...
> 
> Could you try the following patch for "dev/en/midway.c"?
> 
> --Kenjiro
> 
> --- midway.c-	Fri May 21 23:58:11 1999
> +++ midway.c	Sat May 22 00:02:27 1999
> @@ -1261,7 +1261,11 @@
>  		break;
>  
>  	case SIOCSIFFLAGS: 
> +#ifdef ATM_PVCEXT
> +	  	/* point-2-point pvc is allowed to change if_flags */
> +#else
>  		error = EINVAL;
> +#endif
>  		break;
>  
>  #if defined(SIOCSIFMTU)		/* ??? copied from if_de */

I tried to install the patch in midway.c but it failed, so I
manually changed the source code as follows:

        case SIOCSIFFLAGS: 
                if (((ifp->if_flags & IFF_UP)
                     && !(ifp->if_flags & IFF_RUNNING))
                    || (!(ifp->if_flags & IFF_UP)
                        && (ifp->if_flags & IFF_RUNNING))) {    
                        en_reset(sc);
                        en_init(sc);
                }
#ifdef ATM_PVCEXT
                /* point-2-point pvc is allowed to change if_flags */
#else
                error = EINVAL;
#endif
                break;

#if defined(SIOCSIFMTU)         /* ??? copied from if_de */


------

Hope this helps,
George