diff options
Diffstat (limited to 'sys/net/if_gif.c')
-rw-r--r-- | sys/net/if_gif.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/sys/net/if_gif.c b/sys/net/if_gif.c index 919825e..66669ca 100644 --- a/sys/net/if_gif.c +++ b/sys/net/if_gif.c @@ -919,6 +919,17 @@ gif_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) #endif } break; + case SIOCGTUNFIB: + ifr->ifr_fib = sc->gif_fibnum; + break; + case SIOCSTUNFIB: + if ((error = priv_check(curthread, PRIV_NET_GIF)) != 0) + break; + if (ifr->ifr_fib >= rt_numfibs) + error = EINVAL; + else + sc->gif_fibnum = ifr->ifr_fib; + break; case GIFGOPTS: options = sc->gif_options; error = copyout(&options, ifr->ifr_data, sizeof(options)); @@ -934,7 +945,6 @@ gif_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) else sc->gif_options = options; break; - default: error = EINVAL; break; |