summaryrefslogtreecommitdiffstats
path: root/sys/netmpls (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* unifdef some more INET. v4 4life.tedu2014-12-232-11/+2
|
* Explicitly include <net/if_var.h> instead of pulling it in <net/if.h>.mpi2014-12-055-5/+10
| | | | ok mikeb@, krw@, bluhm@, tedu@
* Rename rtalloc1() into rtalloc(9) and convert its flags to only enablempi2014-11-012-5/+5
| | | | | | functionnality instead of a mix of enable/disable. ok bluhm@, jca@
* Use rtfree() instead of RTFREE(), NULLify some free'd route pointers andmpi2014-10-141-5/+5
| | | | | | kill the macro. ok mikeb@, henning@
* remove uneeded route.h includesjsg2014-09-081-2/+3
| | | | ok miod@ mpi@
* Fewer <netinet/in_systm.h> !mpi2014-07-222-4/+2
|
* Remove the number of in6_var.h inclusions by moving some functions andmpi2013-10-241-3/+1
| | | | | | global variables to in6.h. ok deraadt@
* The header file netinet/in_var.h included netinet6/in6_var.h. Thisbluhm2013-10-171-1/+2
| | | | | | | created a bunch of useless dependencies. Remove this implicit inclusion and do an explicit #include <netinet6/in6_var.h> when it is needed. OK mpi@ henning@
* Keep this copy of the ICMP checksum code in sync with recent changes.mpi2013-07-101-7/+4
| | | | ok lteo@, claudio@, bluhm@, henning@
* Move various extern declarations into their corresponding header file.mpi2013-04-244-10/+7
|
* a little header cleanup. ok deraadttedu2013-03-273-9/+3
|
* Remove various read-only *maxlen variables and use IFQ_MAXLEN directly.mpi2013-03-262-5/+3
| | | | ok beck@, mikeb@
* cosnistently use IFQ_SET_MAXLEN, surfaced in a discussion with + ok bluhmhenning2011-07-061-2/+2
|
* de-guttenberg our stack a bithenning2011-04-041-5/+3
| | | | | 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
* no need to check the csum flags before calling mpls_do_cksum whichhenning2011-04-041-4/+2
| | | | immediately checks exactly those flags, claudio ok
* - use nitems(); no binary changejasper2011-03-311-2/+2
| | | | ok claudio@
* make mpls compile w/o errors when inet6 is not definedmikeb2011-01-212-2/+20
| | | | | diff from form@ who's too busy drinking vodka with pelmeni to commit this; ok claudio
* Enable multipath support on the MPLS routing table. ldpd needs this andclaudio2010-10-151-2/+2
| | | | | the priority support that comes together with it. Currently no balancing will happen, only the first path will be used.
* Handle IMPLNULL labels (#3) directly in the kernel like we do with theclaudio2010-10-071-6/+21
| | | | | explicit NULL labels. IMPLNULL labels should never ever be seen on the wire but we're realists. michele@ agrees
* First shot at ICMP error handling inside an MPLS path. Currently onlyclaudio2010-09-131-16/+118
| | | | | | 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@
* Map the TTL when building the initial MPLS stack from the encapsulatedclaudio2010-09-082-4/+53
| | | | | | packet. For IP and IPv6 the corresponding mapttl sysctl needs to be set. This is needed to make traceroute work over MPLS. OK michele@
* Use MPLS_INKERNEL_LOOP_MAX instead of 16 when initializing mpls_inkloop.claudio2010-09-031-2/+2
|
* Correct function in panic string. From Christophe Fillotclaudio2010-07-151-2/+2
|
* Use correct function name in panic()claudio2010-07-071-2/+2
|
* Remove duplicate mtod(). No need to do it twice since the mbuf is notclaudio2010-07-071-3/+1
| | | | modified in between.
* Fix the pop operation to make PHP work again. When popping the last labelclaudio2010-06-092-44/+77
| | | | | | | | 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
* Kill the mpls enable sysctl knob. Since MPLS needs to be enabled explicitlyclaudio2010-06-024-15/+13
| | | | | on each interface there is no need for yet another knob. OK michele@
* Add a comment about the explicit NULL label handling. We follow RFC 4182claudio2010-05-311-1/+6
| | | | | which relaxes the position of these labels. After discussion with Christophe Fillot (cf (at) utc fr)
* Do not use IF_ENQUEUE() but IF_INPUT_ENQUEUE() instead. The first makroclaudio2010-05-311-3/+3
| | | | | | does no overflow checking and does not set the congestion flag. Protocol input queues (inet, inet6, ...) should always use IF_INPUT_ENQUEUE(). OK henning@
* Rework the way we handle MPLS in the kernel. Instead of fumbling MPLS intoclaudio2010-05-283-82/+138
| | | | | | | | | | | 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).
* Start cleaning up the mess called rtalloc*. Kill rtalloc2, make rtalloc1claudio2010-05-072-5/+4
| | | | | | | | 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
* Unbreak build of MPLS enabled kernel. proc.h is needed.michele2010-04-221-1/+2
| | | | ok claudio@
* Remove commented variable.michele2009-07-091-2/+1
|
* Split up functionalities between mpls_input and mpls_output.michele2009-04-292-22/+8
| | | | | | | | 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@
* Introduce a new dummy operation to easily handle packets that have to leavemichele2009-04-282-5/+22
| | | | | | the MPLS cloud and join ipv4/ipv6 stack. ok claudio@ laurent@
* Correctly handle packets that are leaving the MPLS cloud andmichele2009-04-172-7/+109
| | | | | | | | | 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@
* Use our own flags to set the operations and not RTF_PROTOX.michele2009-02-031-5/+5
| | | | | | | Switch the padding field into a MPLS one in rt_msghdr to store relevant informations. OK claudio@ laurent@
* mpls_operation have to be 2 bytes long to storemichele2009-01-291-2/+2
| | | | | | operations correctly ok claudio@ laurent@
* Get rid of the ugly rtentry hack.michele2009-01-284-102/+98
| | | | | | | | 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@
* Fix sockaddr_mpls structure.michele2009-01-085-33/+43
| | | | | | | | | 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@
* Initial fixup of sockaddr_mpls struct.michele2008-12-155-37/+23
| | | | | | | | 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@
* Fix cvs id tag.michele2008-11-061-1/+1
|
* Introduced Uniform Model for TTL handling.michele2008-11-013-11/+17
| | | | | | | | 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 mpls_output() used to output mpls packets originating from local host.michele2008-10-282-1/+155
| | | | | | Strictly similar to mpls_input(). Input and OK claudio@, OK laurent@
* Now mpls_input() handles ipv4 and ipv6 explicit null labels.michele2008-10-142-3/+30
| | | | | | Added mpe_input6 to manage also ipv6 packets insted of just ipv4 ones. OK claudio@ laurent@
* Forgot this one. Wrap a printf() into MPLS_DEBUG sincethib2008-05-231-1/+3
| | | | MPLS_LABEL_GET() is only available #ifdef MPLS_DEBUG
* Make this compile again, by adding a struct proc * argumentthib2008-05-232-4/+4
| | | | | | to the usrreq's. (Both MPLS and NETATALK are disabled in GENERIC).
* Make MPLS code compile without pseudo device mpe. OK norbyclaudio2008-05-101-1/+5
|
* Kill some useless makros.claudio2008-05-091-3/+1
|
* Hook mpe(4) correctly into mpls so that it is possible to tunnel packets overclaudio2008-05-082-11/+16
| | | | MPLS. Still a bit hackish but getting closer. hai norby@