~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/tools/testing/selftests/net/forwarding/vxlan_symmetric_ipv6.sh

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 #!/bin/bash
  2 # SPDX-License-Identifier: GPL-2.0
  3 
  4 
  5 # +--------------------------------+            +-----------------------------+
  6 # |                         vrf-h1 |            |                      vrf-h2 |
  7 # |    + $h1                       |            | + $h2                       |
  8 # |    | 2001:db8:1::1/64          |            | | 2001:db8:2::1/64          |
  9 # |    | default via 2001:db8:1::3 |            | | default via 2001:db8:2::3 |
 10 # +----|---------------------------+            +-|---------------------------+
 11 #      |                                          |
 12 # +----|------------------------------------------|---------------------------+
 13 # | SW |                                          |                           |
 14 # | +--|------------------------------------------|-------------------------+ |
 15 # | |  + $swp1                         br1          + $swp2                 | |
 16 # | |     vid 10 pvid untagged                         vid 20 pvid untagged | |
 17 # | |                                                                       | |
 18 # | |  + vx10                                       + vx20                  | |
 19 # | |    local 2001:db8:3::1                          local 2001:db8:3::1   | |
 20 # | |    remote 2001:db8:3::2                         remote 2001:db8:3::2  | |
 21 # | |    id 1010                                      id 1020               | |
 22 # | |    dstport 4789                                 dstport 4789          | |
 23 # | |    vid 10 pvid untagged                         vid 20 pvid untagged  | |
 24 # | |                                                                       | |
 25 # | |                             + vx4001                                  | |
 26 # | |                               local 2001:db8:3::1                     | |
 27 # | |                               remote 2001:db8:3::2                    | |
 28 # | |                               id 104001                               | |
 29 # | |                               dstport 4789                            | |
 30 # | |                               vid 4001 pvid untagged                  | |
 31 # | |                                                                       | |
 32 # | +-----------------------------------+-----------------------------------+ |
 33 # |                                     |                                     |
 34 # | +-----------------------------------|-----------------------------------+ |
 35 # | |                                   |                                   | |
 36 # | |  +--------------------------------+--------------------------------+  | |
 37 # | |  |                                |                                |  | |
 38 # | |  + vlan10                         |                         vlan20 +  | |
 39 # | |  | 2001:db8:1::2/64               |               2001:db8:2::2/64 |  | |
 40 # | |  |                                |                                |  | |
 41 # | |  + vlan10-v (macvlan)             +             vlan20-v (macvlan) +  | |
 42 # | |    2001:db8:1::3/64           vlan4001            2001:db8:2::3/64    | |
 43 # | |    00:00:5e:00:01:01                             00:00:5e:00:01:01    | |
 44 # | |                               vrf-green                               | |
 45 # | +-----------------------------------------------------------------------+ |
 46 # |                                                                           |
 47 # |    + $rp1                                       +lo                       |
 48 # |    | 2001:db8:4::1/64                           2001:db8:3::1             |
 49 # +----|----------------------------------------------------------------------+
 50 #      |
 51 # +----|--------------------------------------------------------+
 52 # |    |                            vrf-spine                   |
 53 # |    + $rp2                                                   |
 54 # |      2001:db8:4::2/64                                       |
 55 # |                                                             |   (maybe) HW
 56 # =============================================================================
 57 # |                                                             |  (likely) SW
 58 # |                                                             |
 59 # |    + v1 (veth)                                              |
 60 # |    | 2001:db8:5::2/64                                       |
 61 # +----|--------------------------------------------------------+
 62 #      |
 63 # +----|----------------------------------------------------------------------+
 64 # |    + v2 (veth)                                  +lo           NS1 (netns) |
 65 # |      2001:db8:5::1/64                            2001:db8:3::2/128        |
 66 # |                                                                           |
 67 # | +-----------------------------------------------------------------------+ |
 68 # | |                               vrf-green                               | |
 69 # | |  + vlan10-v (macvlan)                           vlan20-v (macvlan) +  | |
 70 # | |  | 2001:db8:1::3/64                               2001:db8:2::3/64 |  | |
 71 # | |  | 00:00:5e:00:01:01                             00:00:5e:00:01:01 |  | |
 72 # | |  |                            vlan4001                             |  | |
 73 # | |  + vlan10                         +                         vlan20 +  | |
 74 # | |  | 2001:db8:1::3/64               |               2001:db8:2::3/64 |  | |
 75 # | |  |                                |                                |  | |
 76 # | |  +--------------------------------+--------------------------------+  | |
 77 # | |                                   |                                   | |
 78 # | +-----------------------------------|-----------------------------------+ |
 79 # |                                     |                                     |
 80 # | +-----------------------------------+-----------------------------------+ |
 81 # | |                                                                       | |
 82 # | |  + vx10                                     + vx20                    | |
 83 # | |    local 2001:db8:3::2                        local 2001:db8:3::2     | |
 84 # | |    remote 2001:db8:3::1                       remote 2001:db8:3::1    | |
 85 # | |    id 1010                                    id 1020                 | |
 86 # | |    dstport 4789                               dstport 4789            | |
 87 # | |    vid 10 pvid untagged                       vid 20 pvid untagged    | |
 88 # | |                                                                       | |
 89 # | |                             + vx4001                                  | |
 90 # | |                               local 2001:db8:3::2                     | |
 91 # | |                               remote 2001:db8:3::1                    | |
 92 # | |                               id 104001                               | |
 93 # | |                               dstport 4789                            | |
 94 # | |                               vid 4001 pvid untagged                  | |
 95 # | |                                                                       | |
 96 # | |  + w1 (veth)                                + w3 (veth)               | |
 97 # | |  | vid 10 pvid untagged          br1        | vid 20 pvid untagged    | |
 98 # | +--|------------------------------------------|-------------------------+ |
 99 # |    |                                          |                           |
100 # |    |                                          |                           |
101 # | +--|----------------------+                +--|-------------------------+ |
102 # | |  |               vrf-h1 |                |  |                  vrf-h2 | |
103 # | |  + w2 (veth)            |                |  + w4 (veth)               | |
104 # | |    2001:db8:1::4/64     |                |    2001:db8:2::4/64        | |
105 # | |    default via          |                |    default via             | |
106 # | |    2001:db8:1::3/64     |                |    2001:db8:2::3/64        | |
107 # | +-------------------------+                +----------------------------+ |
108 # +---------------------------------------------------------------------------+
109 
110 ALL_TESTS="
111         ping_ipv6
112 "
113 NUM_NETIFS=6
114 source lib.sh
115 
116 hx_create()
117 {
118         local vrf_name=$1; shift
119         local if_name=$1; shift
120         local ip_addr=$1; shift
121         local gw_ip=$1; shift
122 
123         vrf_create $vrf_name
124         ip link set dev $if_name master $vrf_name
125         ip link set dev $vrf_name up
126         ip link set dev $if_name up
127 
128         ip address add $ip_addr/64 dev $if_name
129         ip neigh replace $gw_ip lladdr 00:00:5e:00:01:01 nud permanent \
130                 dev $if_name
131         ip route add default vrf $vrf_name nexthop via $gw_ip
132 }
133 export -f hx_create
134 
135 hx_destroy()
136 {
137         local vrf_name=$1; shift
138         local if_name=$1; shift
139         local ip_addr=$1; shift
140         local gw_ip=$1; shift
141 
142         ip route del default vrf $vrf_name nexthop via $gw_ip
143         ip neigh del $gw_ip dev $if_name
144         ip address del $ip_addr/64 dev $if_name
145 
146         ip link set dev $if_name down
147         vrf_destroy $vrf_name
148 }
149 
150 h1_create()
151 {
152         hx_create "vrf-h1" $h1 2001:db8:1::1 2001:db8:1::3
153 }
154 
155 h1_destroy()
156 {
157         hx_destroy "vrf-h1" $h1 2001:db8:1::1 2001:db8:1::3
158 }
159 
160 h2_create()
161 {
162         hx_create "vrf-h2" $h2 2001:db8:2::1 2001:db8:2::3
163 }
164 
165 h2_destroy()
166 {
167         hx_destroy "vrf-h2" $h2 2001:db8:2::1 2001:db8:2::3
168 }
169 
170 switch_create()
171 {
172         ip link add name br1 type bridge vlan_filtering 1 vlan_default_pvid 0 \
173                 mcast_snooping 0
174         # Make sure the bridge uses the MAC address of the local port and not
175         # that of the VxLAN's device.
176         ip link set dev br1 address $(mac_get $swp1)
177         ip link set dev br1 up
178 
179         ip link set dev $rp1 up
180         ip address add dev $rp1 2001:db8:4::1/64
181         ip route add 2001:db8:3::2/128 nexthop via 2001:db8:4::2
182 
183         ip link add name vx10 type vxlan id 1010                \
184                 local 2001:db8:3::1 remote 2001:db8:3::2 dstport 4789   \
185                 nolearning udp6zerocsumrx udp6zerocsumtx tos inherit ttl 100
186         ip link set dev vx10 up
187 
188         ip link set dev vx10 master br1
189         bridge vlan add vid 10 dev vx10 pvid untagged
190 
191         ip link add name vx20 type vxlan id 1020                \
192                 local 2001:db8:3::1 remote 2001:db8:3::2 dstport 4789   \
193                 nolearning udp6zerocsumrx udp6zerocsumtx tos inherit ttl 100
194         ip link set dev vx20 up
195 
196         ip link set dev vx20 master br1
197         bridge vlan add vid 20 dev vx20 pvid untagged
198 
199         ip link set dev $swp1 master br1
200         ip link set dev $swp1 up
201 
202         ip link set dev $swp2 master br1
203         ip link set dev $swp2 up
204 
205         ip link add name vx4001 type vxlan id 104001            \
206                 local 2001:db8:3::1 dstport 4789                        \
207                 nolearning udp6zerocsumrx udp6zerocsumtx tos inherit ttl 100
208         ip link set dev vx4001 up
209 
210         ip link set dev vx4001 master br1
211         bridge vlan add vid 4001 dev vx4001 pvid untagged
212 
213         ip address add 2001:db8:3::1/128 dev lo
214 
215         # Create SVIs
216         vrf_create "vrf-green"
217         ip link set dev vrf-green up
218 
219         ip link add link br1 name vlan10 up master vrf-green type vlan id 10
220         ip address add 2001:db8:1::2/64 dev vlan10
221         ip link add link vlan10 name vlan10-v up master vrf-green \
222                 address 00:00:5e:00:01:01 type macvlan mode private
223         ip address add 2001:db8:1::3/64 dev vlan10-v
224 
225         ip link add link br1 name vlan20 up master vrf-green type vlan id 20
226         ip address add 2001:db8:2::2/64 dev vlan20
227         ip link add link vlan20 name vlan20-v up master vrf-green \
228                 address 00:00:5e:00:01:01 type macvlan mode private
229         ip address add 2001:db8:2::3/64 dev vlan20-v
230 
231         ip link add link br1 name vlan4001 up master vrf-green \
232                 type vlan id 4001
233 
234         bridge vlan add vid 10 dev br1 self
235         bridge vlan add vid 20 dev br1 self
236         bridge vlan add vid 4001 dev br1 self
237 
238         bridge fdb add 00:00:5e:00:01:01 dev br1 self local vlan 10
239         bridge fdb add 00:00:5e:00:01:01 dev br1 self local vlan 20
240 
241         bridge vlan add vid 10 dev $swp1 pvid untagged
242         bridge vlan add vid 20 dev $swp2 pvid untagged
243 }
244 
245 switch_destroy()
246 {
247         bridge vlan del vid 20 dev br1 self
248         bridge vlan del vid 10 dev br1 self
249 
250         bridge fdb del 00:00:5e:00:01:01 dev br1 self local vlan 20
251         bridge fdb del 00:00:5e:00:01:01 dev br1 self local vlan 10
252 
253         bridge vlan del vid 4001 dev br1 self
254         ip link del dev vlan4001
255 
256         ip link del dev vlan20
257 
258         ip link del dev vlan10
259 
260         vrf_destroy "vrf-green"
261 
262         ip address del 2001:db8:3::1/128 dev lo
263 
264         bridge vlan del vid 20 dev $swp2
265         ip link set dev $swp2 down
266         ip link set dev $swp2 nomaster
267 
268         bridge vlan del vid 10 dev $swp1
269         ip link set dev $swp1 down
270         ip link set dev $swp1 nomaster
271 
272         bridge vlan del vid 4001 dev vx4001
273         ip link set dev vx4001 nomaster
274 
275         ip link set dev vx4001 down
276         ip link del dev vx4001
277 
278         bridge vlan del vid 20 dev vx20
279         ip link set dev vx20 nomaster
280 
281         ip link set dev vx20 down
282         ip link del dev vx20
283 
284         bridge vlan del vid 10 dev vx10
285         ip link set dev vx10 nomaster
286 
287         ip link set dev vx10 down
288         ip link del dev vx10
289 
290         ip route del 2001:db8:3::2 nexthop via 2001:db8:4::2
291         ip address del dev $rp1 2001:db8:4::1/64
292         ip link set dev $rp1 down
293 
294         ip link set dev br1 down
295         ip link del dev br1
296 }
297 
298 spine_create()
299 {
300         vrf_create "vrf-spine"
301         ip link set dev $rp2 master vrf-spine
302         ip link set dev v1 master vrf-spine
303         ip link set dev vrf-spine up
304         ip link set dev $rp2 up
305         ip link set dev v1 up
306 
307         ip address add 2001:db8:4::2/64 dev $rp2
308         ip address add 2001:db8:5::2/64 dev v1
309 
310         ip route add 2001:db8:3::1/128 vrf vrf-spine nexthop via \
311                 2001:db8:4::1
312         ip route add 2001:db8:3::2/128 vrf vrf-spine nexthop via \
313                 2001:db8:5::1
314 }
315 
316 spine_destroy()
317 {
318         ip route del 2001:db8:3::2/128 vrf vrf-spine nexthop via \
319                 2001:db8:5::1
320         ip route del 2001:db8:3::1/128 vrf vrf-spine nexthop via \
321                 2001:db8:4::1
322 
323         ip address del 2001:db8:5::2/64 dev v1
324         ip address del 2001:db8:4::2/64 dev $rp2
325 
326         ip link set dev v1 down
327         ip link set dev $rp2 down
328         vrf_destroy "vrf-spine"
329 }
330 
331 ns_h1_create()
332 {
333         hx_create "vrf-h1" w2 2001:db8:1::4 2001:db8:1::3
334 }
335 export -f ns_h1_create
336 
337 ns_h2_create()
338 {
339         hx_create "vrf-h2" w4 2001:db8:2::4 2001:db8:2::3
340 }
341 export -f ns_h2_create
342 
343 ns_switch_create()
344 {
345         ip link add name br1 type bridge vlan_filtering 1 vlan_default_pvid 0 \
346                 mcast_snooping 0
347         ip link set dev br1 up
348 
349         ip link set dev v2 up
350         ip address add dev v2 2001:db8:5::1/64
351         ip route add 2001:db8:3::1 nexthop via 2001:db8:5::2
352 
353         ip link add name vx10 type vxlan id 1010                \
354                 local 2001:db8:3::2 remote 2001:db8:3::1 dstport 4789   \
355                 nolearning udp6zerocsumrx udp6zerocsumtx tos inherit ttl 100
356         ip link set dev vx10 up
357 
358         ip link set dev vx10 master br1
359         bridge vlan add vid 10 dev vx10 pvid untagged
360 
361         ip link add name vx20 type vxlan id 1020                \
362                 local 2001:db8:3::2 remote 2001:db8:3::1 dstport 4789   \
363                 nolearning udp6zerocsumrx udp6zerocsumtx tos inherit ttl 100
364         ip link set dev vx20 up
365 
366         ip link set dev vx20 master br1
367         bridge vlan add vid 20 dev vx20 pvid untagged
368 
369         ip link add name vx4001 type vxlan id 104001            \
370                 local 2001:db8:3::2 dstport 4789                        \
371                 nolearning udp6zerocsumrx udp6zerocsumtx tos inherit ttl 100
372         ip link set dev vx4001 up
373 
374         ip link set dev vx4001 master br1
375         bridge vlan add vid 4001 dev vx4001 pvid untagged
376 
377         ip link set dev w1 master br1
378         ip link set dev w1 up
379         bridge vlan add vid 10 dev w1 pvid untagged
380 
381         ip link set dev w3 master br1
382         ip link set dev w3 up
383         bridge vlan add vid 20 dev w3 pvid untagged
384 
385         ip address add 2001:db8:3::2/128 dev lo
386 
387         # Create SVIs
388         vrf_create "vrf-green"
389         ip link set dev vrf-green up
390 
391         ip link add link br1 name vlan10 up master vrf-green type vlan id 10
392         ip address add 2001:db8:1::3/64 dev vlan10
393         ip link add link vlan10 name vlan10-v up master vrf-green \
394                 address 00:00:5e:00:01:01 type macvlan mode private
395         ip address add 2001:db8:1::3/64 dev vlan10-v
396 
397         ip link add link br1 name vlan20 up master vrf-green type vlan id 20
398         ip address add 2001:db8:2::3/64 dev vlan20
399         ip link add link vlan20 name vlan20-v up master vrf-green \
400                 address 00:00:5e:00:01:01 type macvlan mode private
401         ip address add 2001:db8:2::3/64 dev vlan20-v
402 
403         ip link add link br1 name vlan4001 up master vrf-green \
404                 type vlan id 4001
405 
406         bridge vlan add vid 10 dev br1 self
407         bridge vlan add vid 20 dev br1 self
408         bridge vlan add vid 4001 dev br1 self
409 
410         bridge fdb add 00:00:5e:00:01:01 dev br1 self local vlan 10
411         bridge fdb add 00:00:5e:00:01:01 dev br1 self local vlan 20
412 }
413 export -f ns_switch_create
414 
415 ns_init()
416 {
417         ip link add name w1 type veth peer name w2
418         ip link add name w3 type veth peer name w4
419 
420         ip link set dev lo up
421 
422         ns_h1_create
423         ns_h2_create
424         ns_switch_create
425 }
426 export -f ns_init
427 
428 ns1_create()
429 {
430         ip netns add ns1
431         ip link set dev v2 netns ns1
432         in_ns ns1 ns_init
433 }
434 
435 ns1_destroy()
436 {
437         ip netns exec ns1 ip link set dev v2 netns 1
438         ip netns del ns1
439 }
440 
441 __l2_vni_init()
442 {
443         local mac1=$1; shift
444         local mac2=$1; shift
445         local ip1=$1; shift
446         local ip2=$1; shift
447         local dst=$1; shift
448 
449         bridge fdb add $mac1 dev vx10 self master extern_learn static \
450                 dst $dst vlan 10
451         bridge fdb add $mac2 dev vx20 self master extern_learn static \
452                 dst $dst vlan 20
453 
454         ip neigh add $ip1 lladdr $mac1 nud noarp dev vlan10 \
455                 extern_learn
456         ip neigh add $ip2 lladdr $mac2 nud noarp dev vlan20 \
457                 extern_learn
458 }
459 export -f __l2_vni_init
460 
461 l2_vni_init()
462 {
463         local h1_ns_mac=$(in_ns ns1 mac_get w2)
464         local h2_ns_mac=$(in_ns ns1 mac_get w4)
465         local h1_mac=$(mac_get $h1)
466         local h2_mac=$(mac_get $h2)
467 
468         __l2_vni_init $h1_ns_mac $h2_ns_mac 2001:db8:1::4 2001:db8:2::4 \
469                2001:db8:3::2
470         in_ns ns1 __l2_vni_init $h1_mac $h2_mac 2001:db8:1::1 2001:db8:2::1 \
471                2001:db8:3::1
472 }
473 
474 __l3_vni_init()
475 {
476         local mac=$1; shift
477         local vtep_ip=$1; shift
478         local host1_ip=$1; shift
479         local host2_ip=$1; shift
480 
481         bridge fdb add $mac dev vx4001 self master extern_learn static \
482                 dst $vtep_ip vlan 4001
483 
484         ip neigh add $vtep_ip lladdr $mac nud noarp dev vlan4001 extern_learn
485 
486         ip route add $host1_ip/128 vrf vrf-green nexthop via $vtep_ip \
487                 dev vlan4001 onlink
488         ip route add $host2_ip/128 vrf vrf-green nexthop via $vtep_ip \
489                 dev vlan4001 onlink
490 }
491 export -f __l3_vni_init
492 
493 l3_vni_init()
494 {
495         local vlan4001_ns_mac=$(in_ns ns1 mac_get vlan4001)
496         local vlan4001_mac=$(mac_get vlan4001)
497 
498         __l3_vni_init $vlan4001_ns_mac 2001:db8:3::2 2001:db8:1::4 \
499                 2001:db8:2::4
500         in_ns ns1 __l3_vni_init $vlan4001_mac 2001:db8:3::1 2001:db8:1::1 \
501                 2001:db8:2::1
502 }
503 
504 setup_prepare()
505 {
506         h1=${NETIFS[p1]}
507         swp1=${NETIFS[p2]}
508 
509         swp2=${NETIFS[p3]}
510         h2=${NETIFS[p4]}
511 
512         rp1=${NETIFS[p5]}
513         rp2=${NETIFS[p6]}
514 
515         vrf_prepare
516         forwarding_enable
517 
518         h1_create
519         h2_create
520         switch_create
521 
522         ip link add name v1 type veth peer name v2
523         spine_create
524         ns1_create
525         in_ns ns1 forwarding_enable
526 
527         l2_vni_init
528         l3_vni_init
529 }
530 
531 cleanup()
532 {
533         pre_cleanup
534 
535         ns1_destroy
536         spine_destroy
537         ip link del dev v1
538 
539         switch_destroy
540         h2_destroy
541         h1_destroy
542 
543         forwarding_restore
544         vrf_cleanup
545 }
546 
547 ping_ipv6()
548 {
549         ping6_test $h1 2001:db8:2::1 ": local->local vid 10->vid 20"
550         ping6_test $h1 2001:db8:1::4 ": local->remote vid 10->vid 10"
551         ping6_test $h2 2001:db8:2::4 ": local->remote vid 20->vid 20"
552         ping6_test $h1 2001:db8:2::4 ": local->remote vid 10->vid 20"
553         ping6_test $h2 2001:db8:1::4 ": local->remote vid 20->vid 10"
554 }
555 
556 trap cleanup EXIT
557 
558 setup_prepare
559 setup_wait
560 
561 tests_run
562 
563 exit $EXIT_STATUS

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php