| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
if_vinput requires mpsafe interface counters, so add those in. this
factors out some more code between drivers. monitor mode will work
on these interfaces now too.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Most clonable interface drivers (except bridge, enc, loop, pppx,
switch, trunk and vlan) initialise the send queue's length to IFQ_MAXLEN
during *_clone_create() even though ifq_init(), which is eventually called
through if_attach(), does the same.
Remove all early "ifq_set_maxlen(&ifq->if_snd, IFQ_MAXLEN);" lines to leave
it to ifq_init() and have clonable drivers a tad more in sync.
OK mvs
|
|
|
|
| |
ok dlg@ tobhe@
|
|
|
|
| |
ok tedu@ krw@ deraadt@
|
|
|
|
|
|
|
| |
passed though pf_test(). So there is no need to try to call
pf_pkt_addr_changed() instead just check that the PF statekey is NULL.
Initial problem of not including pf.h found by jsg@
OK jsg@ sashan@
|
|
|
|
| |
reduces code duplication and chance for error.
|
| |
|
|
|
|
|
|
|
|
| |
by default txprio is set to 0, so the exp field will be 0. howerver,
txprio on mpe/mpw/mpip can be configured with other values or
settings like our other tunnel or encapsulation interfaces.
intermediate LSPs can use the exp field to manage their prioritisation
of encapsulated traffic.
|
|
|
|
|
| |
makes this consistent with other tunnel drivers, but mostly to avoid
having state info leak between layers of encapsulation.
|
|
|
|
|
|
|
|
|
| |
if these remain set then output on the underlying interface may
mistakenly be done with the wrong protocol type (eg, MPLS_MCAST
instead of MPLS), and to the wrong link layer address.
reported by Lee Nelson
the specific problem was identified by Mitchell Krome
|
|
|
|
|
| |
consistently set the rtabled for "outgoing" packets to the encap
rdomain. use this for rtallocs in mpip too instead of assuming 0.
|
|
|
|
| |
makes mpe consistent with mpw and mpip
|
| |
|
|
|
|
|
| |
i wrote this in mpe before porting and committing it in mpw, but
forgot to commit the mpe version.
|
| |
|
|
|
|
|
|
|
|
| |
this borrows the SIOCSLIFPHYRTABLE and SIOCGLIFPHYRTABLE that tunnel
interfaces implement to set the rdomain mpls operates in.
ifconfig tunneldomain X lets you set it, and you can see the effect
with netstat -nr -f mpls -TX, but ifconfig currently doesnt show
the tunneldomain. yet.
|
|
|
|
|
|
| |
SIOCSIFRDOMAIN is about the routes on top of an mpe interface. the
rdomain mpls operates in is independent of that, and currently
restricted to rdomain 0.
|
|
|
|
|
|
|
|
|
|
|
|
| |
this allows mpls interfaces (mpe, mpw) to pass the rdomain they
wish the local label to be in, rather than have it implicitly forced
to 0 by these functions. right now they'll pass 0, but it will soon
be possible to have them rx packets in other rdomains.
previously the functions used ifp->if_rdomain for the rdomain.
everything other than mpls still passes ifp->if_rdomain.
ok mpi@
|
|
|
|
| |
fails.
|
| |
|
|
|
|
|
|
|
| |
mpe would try to detect label collisions itself, but wasn't
coordinating with mpw or other labels, making it's solution incomplete.
this also means i won't need extra locking if i try to make the
ioctl paths mpsafe.
|
|
|
|
|
| |
while there, assign int when declaring the sc variable so the ioctl
paths do less.
|
| |
|
| |
|
| |
|
|
|
|
| |
shuffle mpe_output while here.
|
|
|
|
|
| |
we still can't assign a v6 address to the interface, or handle icmp
error generation, but denis@ is working toward that.
|
| |
|
|
|
|
|
|
|
|
| |
mpls_ip_adjttl now patches the checksum rather than check it and
calculate it again. both mpls_ip_adjttl and mpls_ip6_adjttl now
rely on the caller to check the sysctls for whether they should run
or not, which paves the way for making it configurable in mpe via
the tunnel ioctls.
|
|
|
|
|
|
|
|
|
| |
rather than check and recalculate the ipv4 checksum, we can update
the cksum incrementally. this is a bit faster, and means we'll see
more things on bpf.
also, peek at the first nibble so we can tell ipv6 from ipv4. i
consider them the same FEC, so either can be received now.
|
|
|
|
|
|
|
| |
mpe(4) adds itself ot the mpls rtable with RTF_LOCAL set, which
pushes the packet through mpe_output, which sees RTF_LOCAL can calls
mpe_input. this follows what mpw(4) does, and removes a special
case in mpls_input.
|
| |
|
|
|
|
| |
makes this more like other drivers to read.
|
|
|
|
|
|
|
| |
mpestart, mpeioctl and mpeoutput are now mpe_start, mpe_ioctl, and
mpe_output respectively.
no functional change
|
|
|
|
|
|
| |
memory shortage. As it is invoked from a system call, it should
not fail and wait instead.
OK visa@ mpi@
|
|
|
|
|
|
|
|
|
|
| |
- Change the way mpe figures out the IP of the MPLS nexthop. Instead of using
RTF_GATEWAY and so a valid (and cachable) gateway route just use the
gateway IP address of the route (rt->rt_gateway).
- Make sure the interface is up when adding a mplslabel. The inserted route
is in rtable 0 and so invisible for the link state tracker. Forcing the if_up
ensures that the added route is RTF_UP.
OK mpi@
|
|
|
|
|
|
|
|
| |
This was a bit confusing for the scanner and when reviewing the code.
Coverity CIDs 1453053 1453106; Severity: Insignificant
ok mpi@
|
| |
|
|
|
|
|
|
|
| |
This will help transitionning to an un-KERNEL_LOCK()ed IP
forwarding path.
Disucssed with bluhm@, ok claudio@
|
|
|
|
|
|
|
| |
inline function instead of casting it to sockaddr. While there,
use inline instead of __inline for all these conversions. Some
struct sockaddr casts can be avoided completely.
OK dhill@ mpi@
|
|
|
|
| |
rectification.
|
|
|
|
|
|
|
|
|
| |
only once per packet.
Fix a regression introduced when if_input() started to be called by
every pseudo-driver.
ok claudio@, dlg@
|
|
|
|
| |
ok rzalamena@
|
| |
|
| |
|
|
|
|
| |
From David Hill, ok dlg@
|
| |
|
|
|
|
|
|
| |
for failed route lookups. This is something that was maybe useful in the
90is but in this modern times it is just annoying and nothing expect it
anyway. OK mpi@, sthen@
|
|
|
|
| |
ok claudio@
|
|
|
|
|
|
|
| |
of rt_getifa() when adding link level route from outside the
kernel.
ok claudio@
|