| Summary: | Two problems with the tun device | ||
|---|---|---|---|
| Product: | Base System | Reporter: | scott_long <scott_long> |
| Component: | kern | Assignee: | freebsd-bugs (Nobody) <bugs> |
| Status: | Closed FIXED | ||
| Severity: | Affects Only Me | ||
| Priority: | Normal | ||
| Version: | 5.0-CURRENT | ||
| Hardware: | Any | ||
| OS: | Any | ||
|
Description
scott_long
2000-03-19 23:20:01 UTC
> 1. the ifnet structure for the tun device is not created at attach time like > it is for other network drivers. Instead, it is created when the device is > opened, if it hasn't already been created in a previous open. This behaviour > causes my program to not see the tun device unless a program like ppp(8) is > run first, which defeats one of the goals of this program: to control dialup > networking. Comparing code in if_[tun|ppp|sl|lo].c shows that all but tun > create the ifnet structure from within their respective attach routine. But > on the other hand, if_tun.c uses make_dev while the others do not. Making > if_tun.c resemble the others is a trivial task, but I am not sure what would > be lost by eliminating make_dev (which requires a dev_t argument that attach > cannot supply, if I understand things correctly). Interfaces are moving towards being a lot more dynamic than they have been in the past. This new behaviour of the tun device is IMHO the way forward rather than a problem that has to be fixed. The way things currently are, you don't even need a tun device specified in your kernel. The module is as functional and will create new interfaces and softcs as required. In the future, I would think it's likely that the last close() will remove the interface. Why does you program require the interfaces existence up front ? Surely this is where the problem lies ? -- Brian <brian@Awfulhak.org> <brian@[uk.]FreeBSD.org> <http://www.Awfulhak.org> <brian@[uk.]OpenBSD.org> Don't _EVER_ lose your sense of humour ! State Changed From-To: open->closed Timeout; no response from originator. |