| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
ok gnezdo@ semarie@ mpi@
|
|
|
|
| |
OK claudio@
|
|
|
|
|
|
| |
The value is no longer needed since the MPLS code got refactored some time
ago.
Found by Thomas Habets (thomas (at) habets se)
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
this makes it like all our other protocol family input functions.
mpls_input always looks up the interface the mbuf was received on,
but it's always called by code that already has a reference to that
interface anyway. the result of this is a few less if_get/if_put
calls.
ok mpi@ bluhm@ visa@ claudio@
|
| |
|
|
|
|
|
|
|
| |
basic anyway. Simplifies the code a lot also by calling the mpls sysctl no
longer via the protosw but instead directly.
OK mpi@ on a previous diff. Also tested by renato@ who actually found a bug
which is now fixed.
|
|
|
|
|
|
|
|
|
| |
them and they make everything so much harder with no gain. Remove the
ifp argument from mpls_input since it is not needed. On the input side
the lookup side is modified a bit when it comes to BOS handling.
Tested in a L3VPN setup with ldpd and bgpd. Commiting now so we can move
on with cleaning up rt_ifp usage. If this breaks L2VPN I will fix it once
reported. OK mpi@
|
|
|
|
|
|
| |
directly. Also protect non mp-safe functions while at it.
ok mpi@.
|
|
|
|
| |
ok mpi@, claudio@.
|
|
|
|
|
|
| |
with MPLS packets.
ok mpi@, claudio@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
with niqueues.
this change is so big because there's a lot of code that takes
pointers to different input queues (eg, ether_input picks between
ipv4, ipv6, pppoe, arp, and mpls input queues) and falls through
to code to enqueue packets against the pointer. if i changed only
one of the input queues id have to add sepearate code paths, one
for ifqueues and one for niqueues in each of these places
by flipping all these input queues at once i can keep the currently
common code common.
testing by mpi@ sthen@ and rafael zalamena
ok mpi@ sthen@ claudio@ henning@
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since the removal of the link-layer ifa from "struct ifnet" it was
impossible to configure MPLS routes on mpe(4). Because just like
enc(4), mpe(4) was abusing the link-layer ifa to attach its route
entries.
So explicitly pass a "glue" ifa to the routing layer.
From Rafael Zalamena who discovered this the hardway, thanks!
ok claudio@
|
|
|
|
| |
ok millert
|
| |
|
| |
|
|
|
|
| |
ok beck@, mikeb@
|
|
|
|
|
|
| |
packet. For IP and IPv6 the corresponding mapttl sysctl needs to be set.
This is needed to make traceroute work over MPLS.
OK michele@
|
|
|
|
|
|
|
|
| |
by a pop operation we need to forward the packet to the specified nexthop
as is. This is done by calling the interface output routine directly.
This is different to the local operation since that one injects the packets
into ip_input() via netisr.
OK michele
|
|
|
|
|
| |
on each interface there is no need for yet another knob.
OK michele@
|
|
|
|
|
|
|
|
|
|
|
| |
ether_output() and later on other L2 output functions use a trick and over-
load the ifp->if_output() function pointer on MPLS enabled interfaces to
go through mpls_output() which will then call the link level output function.
By setting IFXF_MPLS on an interface the output pointers are switched.
This now allows to cleanup the MPLS input and output pathes and fix mpe(4)
so that the MPLS code now actually works for both P and PE systems.
Tested by myself and michele
(A custom kernel with MPLS and mpe enabled is still needed).
|
|
|
|
|
|
| |
the MPLS cloud and join ipv4/ipv6 stack.
ok claudio@ laurent@
|
|
|
|
|
|
|
|
|
| |
joining the ipv4/ipv6 stack.
Get also rid of the dependency on mpe(4) for packets not belonging
to VPN traffic.
ok laurent@, ok and input claudio@
|
|
|
|
|
|
|
| |
Switch the padding field into a MPLS one in rt_msghdr to store
relevant informations.
OK claudio@ laurent@
|
|
|
|
|
|
| |
operations correctly
ok claudio@ laurent@
|
|
|
|
|
|
|
|
| |
We can now act as edge node and allow ipv4 packets to
enter a Label Switched Path and not just forwarding
MPLS packets.
OK claudio@
|
|
|
|
|
|
|
|
|
| |
Now it contains just the label as it must be.
This introduces a ugly hack in rtentry that will be removed
as soon as possible.
OK claudio@
|
|
|
|
|
|
|
|
| |
Remove smpls_in_iface as labels must be per platform unique.
Remove smpls_out_iface. It is redudant and can be inferred from nexthop.
Move smpls_operation to rt_flags and temporary remove smpls_out_exp.
ok claudio@
|
|
|
|
|
|
|
|
| |
MPLS TTL is mapped into network layer one as the packet exits the LSP.
Just IPv4 support for now.
Added the relevant sysctls to enable this behaviour.
Input and OK claudio@
|
|
|
|
|
|
| |
Strictly similar to mpls_input().
Input and OK claudio@, OK laurent@
|
|
|
|
|
|
| |
Added mpe_input6 to manage also ipv6 packets insted of just ipv4 ones.
OK claudio@ laurent@
|
|
|
|
|
|
| |
to the usrreq's.
(Both MPLS and NETATALK are disabled in GENERIC).
|
| |
|
|
|
|
| |
MPLS. Still a bit hackish but getting closer. hai norby@
|
|
|
|
|
|
| |
no consumers yet, they should come soon.
ok norby@
|
|
|
|
|
| |
Make the mtu user definable.
ok claudio@
|
|
|
|
|
|
|
|
| |
While there bump MTU to 1500 and set the receiving interface before
calling mpls_input. mpestart will eventually call mpls_output when it
exists.
``yaaaaayyy'' and ok claudio@ and norby@
|
|
|
|
|
|
|
| |
in progress and some bits need to be cleaned up but will be in-tree for
convenience.
ok claudio@, norby@
|
|
|
|
|
|
|
|
|
| |
Discussed with claudio@ dlg@ laurent@
Remember to enable MPLS vith sysctl(8).
sysctl -w net.mpls.enable=1
ok claudio@ dlg@ laurent@
|
| |
|
|
|
|
| |
Fix my faulty import....
|
|
MPLS support partly based on the (abandoned?) AYAME project.
Basic LSR (Label Switch Router) functionality is present, but not fully
functional yet.
It is currently possible to insert entries in the LIB (Label Information Base)
with route(8), but setting the operation type is not supported yet.
Imported to allow more people to work on this in the coming weeks.
ok claudio@ laurent@ dlg@
|