Age | Commit message (Collapse) | Author |
|
diff from form@ who's too busy drinking vodka with pelmeni to commit this;
ok claudio
|
|
explicit NULL labels. IMPLNULL labels should never ever be seen on the
wire but we're realists. michele@ agrees
|
|
TTL exceeded errors for IPv4 are handled. This makes traceroute through
MPLS tunnels work (including RFC 4950 MPLS extension header).
"best to get it in." deraadt@
|
|
|
|
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@
|
|
which relaxes the position of these labels. After discussion with
Christophe Fillot (cf (at) utc fr)
|
|
does no overflow checking and does not set the congestion flag. Protocol
input queues (inet, inet6, ...) should always use IF_INPUT_ENQUEUE().
OK henning@
|
|
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).
|
|
accept flags for report and nocloning. Move the rtableid into struct route
(with a minor twist for now) and make a few more codepathes rdomain aware.
Appart from the pf.c and route.c bits the diff is mostly mechanical.
More to come...
OK michele, henning
|
|
The former is responsible to handle packets destined to localhost,
the latter handles packet that have to be forwarded or the ones
originated from localhost.
"i like it" claudio@
|
|
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@
|
|
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@
|
|
Added mpe_input6 to manage also ipv6 packets insted of just ipv4 ones.
OK claudio@ laurent@
|
|
MPLS_LABEL_GET() is only available #ifdef MPLS_DEBUG
|
|
|
|
MPLS. Still a bit hackish but getting closer. hai norby@
|
|
in progress and some bits need to be cleaned up but will be in-tree for
convenience.
ok claudio@, norby@
|
|
ok claudio@
|
|
ok claudio@
|
|
ok claudio@
|
|
|
|
Discussed with claudio@ dlg@ laurent@
Remember to enable MPLS vith sysctl(8).
sysctl -w net.mpls.enable=1
ok claudio@ dlg@ laurent@
|
|
it by reading the queues head pointer. if that pointer is not null
then it takes splnet and dequeues a packet for handling. this is
bad because the ifqueue head is modified at splnet and the sofnet
handlers read it without holding splnet.
this removes that check of the head pointer and simply checks if
the dequeue gave us a packet or not before proceeding.
found while reading mpls code.
discussed with norby@ and henning@
ok mcbride@ henning@
|
|
|
|
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@
|