Age | Commit message (Collapse) | Author |
|
|
|
we don't need 7 f***ing copies of the same code to do the protocol checksums
(or not, depending on hw capabilities). claudio ok
|
|
immediately checks exactly those flags, claudio ok
|
|
ok claudio@
|
|
diff from form@ who's too busy drinking vodka with pelmeni to commit this;
ok claudio
|
|
the priority support that comes together with it. Currently no balancing
will happen, only the first path will be used.
|
|
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@
|
|
packet. For IP and IPv6 the corresponding mapttl sysctl needs to be set.
This is needed to make traceroute work over MPLS.
OK michele@
|
|
|
|
|
|
|
|
modified in between.
|
|
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
|
|
ok claudio@
|
|
|
|
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@
|
|
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@
|
|
MPLS_LABEL_GET() is only available #ifdef MPLS_DEBUG
|
|
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@
|
|
ok claudio@
|
|
ok claudio@
|
|
ok claudio@
|
|
|
|
are done with network byte ordering now. OK norby@
|
|
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@
|
|
|