mirror of
https://github.com/openharmony/kernel_linux_common_modules.git
synced 2026-08-26 17:16:37 -04:00
@@ -1,363 +1,4 @@
|
||||
Copyright (c) 2023 Huawei Device Co., Ltd. All rights reserved.
|
||||
(1) The directories below are licensed under GPL-2.0-or-later.
|
||||
./newip/
|
||||
|
||||
The newip subdirectories is licensed under GPL-2.0+.
|
||||
|
||||
a) Valid-License-Identifier: GPL-2.0
|
||||
Valid-License-Identifier: GPL-2.0-only
|
||||
Valid-License-Identifier: GPL-2.0+
|
||||
Valid-License-Identifier: GPL-2.0-or-later
|
||||
SPDX-URL: https://spdx.org/licenses/GPL-2.0.html
|
||||
Usage-Guide:
|
||||
To use this license in source code, put one of the following SPDX
|
||||
tag/value pairs into a comment according to the placement
|
||||
guidelines in the licensing rules documentation.
|
||||
For 'GNU General Public License (GPL) version 2 only' use:
|
||||
SPDX-License-Identifier: GPL-2.0
|
||||
or
|
||||
SPDX-License-Identifier: GPL-2.0-only
|
||||
For 'GNU General Public License (GPL) version 2 or any later version' use:
|
||||
SPDX-License-Identifier: GPL-2.0+
|
||||
or
|
||||
SPDX-License-Identifier: GPL-2.0-or-later
|
||||
License-Text:
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
||||
As for the specific use of the licenses, please refer to the relevant description in the documents.
|
||||
|
||||
@@ -0,0 +1,359 @@
|
||||
Valid-License-Identifier: GPL-2.0
|
||||
Valid-License-Identifier: GPL-2.0-only
|
||||
Valid-License-Identifier: GPL-2.0+
|
||||
Valid-License-Identifier: GPL-2.0-or-later
|
||||
SPDX-URL: https://spdx.org/licenses/GPL-2.0.html
|
||||
Usage-Guide:
|
||||
To use this license in source code, put one of the following SPDX
|
||||
tag/value pairs into a comment according to the placement
|
||||
guidelines in the licensing rules documentation.
|
||||
For 'GNU General Public License (GPL) version 2 only' use:
|
||||
SPDX-License-Identifier: GPL-2.0
|
||||
or
|
||||
SPDX-License-Identifier: GPL-2.0-only
|
||||
For 'GNU General Public License (GPL) version 2 or any later version' use:
|
||||
SPDX-License-Identifier: GPL-2.0+
|
||||
or
|
||||
SPDX-License-Identifier: GPL-2.0-or-later
|
||||
License-Text:
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
||||
@@ -0,0 +1,25 @@
|
||||
SPDX-Exception-Identifier: Linux-syscall-note
|
||||
SPDX-URL: https://spdx.org/licenses/Linux-syscall-note.html
|
||||
SPDX-Licenses: GPL-2.0, GPL-2.0+, GPL-1.0+, LGPL-2.0, LGPL-2.0+, LGPL-2.1, LGPL-2.1+, GPL-2.0-only, GPL-2.0-or-later
|
||||
Usage-Guide:
|
||||
This exception is used together with one of the above SPDX-Licenses
|
||||
to mark user space API (uapi) header files so they can be included
|
||||
into non GPL compliant user space application code.
|
||||
To use this exception add it with the keyword WITH to one of the
|
||||
identifiers in the SPDX-Licenses tag:
|
||||
SPDX-License-Identifier: <SPDX-License> WITH Linux-syscall-note
|
||||
License-Text:
|
||||
|
||||
NOTE! This copyright does *not* cover user programs that use kernel
|
||||
services by normal system calls - this is merely considered normal use
|
||||
of the kernel, and does *not* fall under the heading of "derived work".
|
||||
Also note that the GPL below is copyrighted by the Free Software
|
||||
Foundation, but the instance of code that it refers to (the Linux
|
||||
kernel) is copyrighted by me and others who actually wrote it.
|
||||
|
||||
Also note that the only valid version of the GPL as far as the kernel
|
||||
is concerned is _this_ particular version of the license (ie v2, not
|
||||
v2.2 or v3.x or whatever), unless explicitly otherwise stated.
|
||||
|
||||
Linus Torvalds
|
||||
|
||||
@@ -56,22 +56,25 @@ Note:If the text contains special characters, please escape them according to th
|
||||
<configuration>
|
||||
<oatconfig>
|
||||
<policylist>
|
||||
<policy name="projectPolicy" desc="New IP protocol stack">
|
||||
<policyitem type="compatibility" name="GPL" path=".*" rule="may" group="defaultGroup" filefilter="defaultFilter" desc=""/>
|
||||
<policyitem type="license" name="GPL" path=".*" rule="may" group="defaultGroup" filefilter="defaultFilter" desc=""/>
|
||||
<policyitem type="copyright" name="Huawei Device Co., Ltd." path=".*" rule="must" group="defaultGroup" filefilter="defaultFilter" desc=""/>
|
||||
<policy name="newipPolicy" desc="New IP protocol stack">
|
||||
<policyitem type="compatibility" name="GPL" path="newip/.*" rule="may" group="defaultGroup" filefilter="defaultPolicyFilter"/>
|
||||
<policyitem type="license" name="GPL" path="newip/.*" rule="may" group="defaultGroup" filefilter="defaultPolicyFilter"/>
|
||||
</policy>
|
||||
</policylist>
|
||||
<filefilterlist>
|
||||
<filefilter name="defaultFilter" desc="">
|
||||
<filteritem type="filepath" name="newip\figures\.*" desc=""/>
|
||||
<filteritem type="filepath" name="newip\apply_newip.sh" desc=""/>
|
||||
<filteritem type="filepath" name="newip\README_zh.md" desc=""/>
|
||||
<filteritem type="filepath" name="newip\README.md" desc=""/>
|
||||
<filteritem type="filepath" name="newip\README.OpenSource" desc=""/>
|
||||
<filteritem type="filepath" name="LICENSE" desc=""/>
|
||||
<filteritem type="filepath" name="README_zh.md" desc=""/>
|
||||
<filteritem type="filepath" name="README.md" desc=""/>
|
||||
<filefilter name="copyrightPolicyFilter" desc="copyright description filter">
|
||||
<filteritem type="filepath" name="LICENSES-GPL-2.0" desc="license file"/>
|
||||
<filteritem type="filepath" name="LICENSES-Linux-syscall-note" desc="license file"/>
|
||||
<filteritem type="filepath" name="newip/third_party/.*" desc="third party code path"/>
|
||||
</filefilter>
|
||||
<filefilter name="defaultPolicyFilter" desc="Files that do not need to be applied specified policy, will be merged with the filter items which has the same filefilter name">
|
||||
<filteritem type="filepath" name="LICENSE" desc="license file"/>
|
||||
<filteritem type="filepath" name="LICENSES-GPL-2.0" desc="license file"/>
|
||||
<filteritem type="filepath" name="LICENSES-Linux-syscall-note" desc="license file"/>
|
||||
<filteritem type="filepath" name="newip/third_party/linux-5.10/LICENSES/.*" desc="license file"/>
|
||||
</filefilter>
|
||||
<filefilter name="binaryFileTypePolicyFilter" desc="binary file filter">
|
||||
<filteritem type="filepath" name="newip/figures/.*"/>
|
||||
</filefilter>
|
||||
</filefilterlist>
|
||||
</oatconfig>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
{
|
||||
"Name": "linux-5.10",
|
||||
"License": "GPL-2.0+",
|
||||
"License File": "COPYING",
|
||||
"License File": "newip/third_party/linux-5.10/LICENSES",
|
||||
"Version Number": "5.10.93",
|
||||
"Owner": "tanyanying@huawei.com",
|
||||
"Upstream URL": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/log/?h=linux-5.10.y",
|
||||
+9
-2
@@ -2,7 +2,7 @@
|
||||
|
||||
## 简介
|
||||
|
||||
New IP在现有IP能力的基础上,以灵活轻量级报头和可变长多语义地址为基础,通过二三层协议融合,对协议去冗和压缩,减少冗余字节,实现高能效比,高净吞吐,提升通信效率。打造终端之间高效的横向通信,支撑超级终端的体验,实现异构网络的端到端互联。
|
||||
New IP在现有[IPv4/IPv6](https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/log/?h=linux-5.10.y)能力的基础上,以灵活轻量级报头和可变长多语义地址为基础,通过二三层协议融合,对协议去冗和压缩,减少冗余字节,实现高能效比,高净吞吐,提升通信效率。打造终端之间高效的横向通信,支撑超级终端的体验,实现异构网络的端到端互联。
|
||||
|
||||
目前WiFi协议报文,三层报头和地址开销使得报文开销大,传输效率较低。
|
||||
|
||||
@@ -38,9 +38,16 @@ New IP内核协议栈主要代码目录结构如下:
|
||||
```
|
||||
# 代码路径 /kernel/linux/common_modules/newip
|
||||
├── examples # New IP 用户态样例代码
|
||||
├── src
|
||||
├── src # New IP 自研代码
|
||||
│ ├── common # New IP 通用代码
|
||||
│ └── linux-5.10 # New IP Linux-5.10内核代码
|
||||
│ ├── net
|
||||
│ │ └── newip # New IP 功能代码
|
||||
│ └── drivers
|
||||
│ └── net
|
||||
│ └── bt # New IP 功能代码
|
||||
├── third_party # New IP 三方引用+增量开发代码
|
||||
│ └── linux-5.10 # New IP Linux-5.10内核代码
|
||||
│ ├── include # New IP 头文件
|
||||
│ │ ├── linux
|
||||
│ │ ├── net
|
||||
|
||||
+22
-18
@@ -13,28 +13,32 @@ NEWIP_SOURCE_ROOT=$OHOS_SOURCE_ROOT/kernel/linux/common_modules/newip
|
||||
|
||||
function main()
|
||||
{
|
||||
pushd .
|
||||
pushd .
|
||||
|
||||
cd $KERNEL_BUILD_ROOT/include/linux/
|
||||
ln -s -f $(realpath --relative-to=$KERNEL_BUILD_ROOT/include/linux $NEWIP_SOURCE_ROOT/src/linux-5.10/include/linux)/*.h ./
|
||||
cd $KERNEL_BUILD_ROOT/include/net/netns
|
||||
ln -s -f $(realpath --relative-to=$KERNEL_BUILD_ROOT/include/net/netns $NEWIP_SOURCE_ROOT/src/linux-5.10/include/net/netns)/*.h ./
|
||||
cd $KERNEL_BUILD_ROOT/include/net
|
||||
ln -s -f $(realpath --relative-to=$KERNEL_BUILD_ROOT/include/net $NEWIP_SOURCE_ROOT/src/linux-5.10/include/net)/*.h ./
|
||||
cd $KERNEL_BUILD_ROOT/include/uapi/linux
|
||||
ln -s -f $(realpath --relative-to=$KERNEL_BUILD_ROOT/include/uapi/linux $NEWIP_SOURCE_ROOT/src/linux-5.10/include/uapi/linux)/*.h ./
|
||||
cd $KERNEL_BUILD_ROOT/include/linux/
|
||||
ln -s -f $(realpath --relative-to=$KERNEL_BUILD_ROOT/include/linux $NEWIP_SOURCE_ROOT/third_party/linux-5.10/include/linux)/*.h ./
|
||||
cd $KERNEL_BUILD_ROOT/include/net/netns
|
||||
ln -s -f $(realpath --relative-to=$KERNEL_BUILD_ROOT/include/net/netns $NEWIP_SOURCE_ROOT/third_party/linux-5.10/include/net/netns)/*.h ./
|
||||
cd $KERNEL_BUILD_ROOT/include/net
|
||||
ln -s -f $(realpath --relative-to=$KERNEL_BUILD_ROOT/include/net $NEWIP_SOURCE_ROOT/third_party/linux-5.10/include/net)/*.h ./
|
||||
cd $KERNEL_BUILD_ROOT/include/uapi/linux
|
||||
ln -s -f $(realpath --relative-to=$KERNEL_BUILD_ROOT/include/uapi/linux $NEWIP_SOURCE_ROOT/third_party/linux-5.10/include/uapi/linux)/*.h ./
|
||||
|
||||
if [ ! -d " $KERNEL_BUILD_ROOT/net/newip" ]; then
|
||||
mkdir $KERNEL_BUILD_ROOT/net/newip
|
||||
fi
|
||||
if [ ! -d "$KERNEL_BUILD_ROOT/net/newip" ]; then
|
||||
mkdir $KERNEL_BUILD_ROOT/net/newip
|
||||
fi
|
||||
|
||||
cd $KERNEL_BUILD_ROOT/net/newip/
|
||||
ln -s -f $(realpath --relative-to=$KERNEL_BUILD_ROOT/net/newip $NEWIP_SOURCE_ROOT/src/linux-5.10/net/newip)/* ./
|
||||
ln -s -f $(realpath --relative-to=$KERNEL_BUILD_ROOT/net/newip $NEWIP_SOURCE_ROOT/src/common)/* ./
|
||||
cd $KERNEL_BUILD_ROOT/include/uapi/linux
|
||||
ln -s -f $(realpath --relative-to=$KERNEL_BUILD_ROOT/include/uapi/linux $NEWIP_SOURCE_ROOT/src/common)/nip_addr.h nip_addr.h
|
||||
cd $KERNEL_BUILD_ROOT/net/newip/
|
||||
ln -s -f $(realpath --relative-to=$KERNEL_BUILD_ROOT/net/newip $NEWIP_SOURCE_ROOT/src/linux-5.10/net/newip)/* ./
|
||||
ln -s -f $(realpath --relative-to=$KERNEL_BUILD_ROOT/net/newip $NEWIP_SOURCE_ROOT/src/common)/* ./
|
||||
ln -s -f $(realpath --relative-to=$KERNEL_BUILD_ROOT/net/newip $NEWIP_SOURCE_ROOT/third_party/linux-5.10/net/newip)/* ./
|
||||
cd $KERNEL_BUILD_ROOT/include/uapi/linux
|
||||
ln -s -f $(realpath --relative-to=$KERNEL_BUILD_ROOT/include/uapi/linux $NEWIP_SOURCE_ROOT/src/common)/nip_addr.h nip_addr.h
|
||||
|
||||
popd
|
||||
cd $KERNEL_BUILD_ROOT/drivers/net/
|
||||
ln -s -f $(realpath --relative-to=$KERNEL_BUILD_ROOT/drivers/net/ $NEWIP_SOURCE_ROOT/src/linux-5.10/drivers/net/bt)
|
||||
|
||||
popd
|
||||
}
|
||||
|
||||
main
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (c) 2023 Huawei Device Co., Ltd.
|
||||
#
|
||||
# enable btdev:
|
||||
# kernel/linux/linux-5.10/drivers/net/Makefile add obj-y += bt/ or obj-$(CONFIG_NEWIP) += bt/
|
||||
obj-y += btdev.o
|
||||
|
||||
+359
@@ -0,0 +1,359 @@
|
||||
Valid-License-Identifier: GPL-2.0
|
||||
Valid-License-Identifier: GPL-2.0-only
|
||||
Valid-License-Identifier: GPL-2.0+
|
||||
Valid-License-Identifier: GPL-2.0-or-later
|
||||
SPDX-URL: https://spdx.org/licenses/GPL-2.0.html
|
||||
Usage-Guide:
|
||||
To use this license in source code, put one of the following SPDX
|
||||
tag/value pairs into a comment according to the placement
|
||||
guidelines in the licensing rules documentation.
|
||||
For 'GNU General Public License (GPL) version 2 only' use:
|
||||
SPDX-License-Identifier: GPL-2.0
|
||||
or
|
||||
SPDX-License-Identifier: GPL-2.0-only
|
||||
For 'GNU General Public License (GPL) version 2 or any later version' use:
|
||||
SPDX-License-Identifier: GPL-2.0+
|
||||
or
|
||||
SPDX-License-Identifier: GPL-2.0-or-later
|
||||
License-Text:
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 2 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
||||
@@ -0,0 +1,25 @@
|
||||
SPDX-Exception-Identifier: Linux-syscall-note
|
||||
SPDX-URL: https://spdx.org/licenses/Linux-syscall-note.html
|
||||
SPDX-Licenses: GPL-2.0, GPL-2.0+, GPL-1.0+, LGPL-2.0, LGPL-2.0+, LGPL-2.1, LGPL-2.1+, GPL-2.0-only, GPL-2.0-or-later
|
||||
Usage-Guide:
|
||||
This exception is used together with one of the above SPDX-Licenses
|
||||
to mark user space API (uapi) header files so they can be included
|
||||
into non GPL compliant user space application code.
|
||||
To use this exception add it with the keyword WITH to one of the
|
||||
identifiers in the SPDX-Licenses tag:
|
||||
SPDX-License-Identifier: <SPDX-License> WITH Linux-syscall-note
|
||||
License-Text:
|
||||
|
||||
NOTE! This copyright does *not* cover user programs that use kernel
|
||||
services by normal system calls - this is merely considered normal use
|
||||
of the kernel, and does *not* fall under the heading of "derived work".
|
||||
Also note that the GPL below is copyrighted by the Free Software
|
||||
Foundation, but the instance of code that it refers to (the Linux
|
||||
kernel) is copyrighted by me and others who actually wrote it.
|
||||
|
||||
Also note that the only valid version of the GPL as far as the kernel
|
||||
is concerned is _this_ particular version of the license (ie v2, not
|
||||
v2.2 or v3.x or whatever), unless explicitly otherwise stated.
|
||||
|
||||
Linus Torvalds
|
||||
|
||||
+3
-3
@@ -1,11 +1,11 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Based on include/uapi/linux/ipv6_route.h
|
||||
* Authors:
|
||||
* Pedro Roque <roque@di.fc.ul.pt>
|
||||
*
|
||||
* Linux NewIP INET implementation
|
||||
*
|
||||
* Based on include/uapi/linux/ipv6_route.h
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
Vendored
+26
-3
@@ -1,9 +1,32 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
*
|
||||
* Based on include/linux/ipv6.h
|
||||
* No Authors, no Copyright
|
||||
*
|
||||
* Based on include/net/sock.h
|
||||
* Authors: Ross Biro
|
||||
* Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
|
||||
* Corey Minyard <wf-rch!minyard@relay.EU.net>
|
||||
* Florian La Roche <flla@stud.uni-sb.de>
|
||||
*
|
||||
* Fixes:
|
||||
* Alan Cox : Volatiles in skbuff pointers. See
|
||||
* skbuff comments. May be overdone,
|
||||
* better to prove they can be removed
|
||||
* than the reverse.
|
||||
* Alan Cox : Added a zapped field for tcp to note
|
||||
* a socket is reset and must stay shut up
|
||||
* Alan Cox : New fields for options
|
||||
* Pauline Middelink : identd support
|
||||
* Alan Cox : Eliminate low level recv/recvfrom
|
||||
* David S. Miller : New socket lookup architecture.
|
||||
* Steve Whitehouse: Default routines for sock_ops
|
||||
* Arnaldo C. Melo : removed net_pinfo, tp_pinfo and made
|
||||
* protinfo be just a void pointer, as the
|
||||
* protocol specific parts were moved to
|
||||
* respective headers and ipv4/v6, etc now
|
||||
* use private slabcaches for its socks
|
||||
* Pedro Hortas : New flags field for socket options
|
||||
*/
|
||||
#ifndef _NIP_H
|
||||
#define _NIP_H
|
||||
+2
-3
@@ -1,6 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Based on include/linux/icmp.h
|
||||
* Author: Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
|
||||
*
|
||||
* NewIP INET
|
||||
* An implementation of the TCP/IP protocol suite for the LINUX
|
||||
@@ -8,8 +9,6 @@
|
||||
* interface as the means of communication with the user level.
|
||||
*
|
||||
* Definitions for the NewIP ICMP protocol.
|
||||
*
|
||||
* Based on include/linux/icmp.h
|
||||
*/
|
||||
#ifndef _LINUX_NIP_ICMP_H
|
||||
#define _LINUX_NIP_ICMP_H
|
||||
Vendored
+2
-3
@@ -1,10 +1,9 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Based on include/net/flow.h
|
||||
* No Authors, no Copyright
|
||||
*
|
||||
* NewIP Generic internet FLOW.
|
||||
*
|
||||
* Based on include/net/flow.h
|
||||
*/
|
||||
#ifndef _NET_FLOW_NIP_H
|
||||
#define _NET_FLOW_NIP_H
|
||||
Vendored
+3
-3
@@ -1,11 +1,11 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Based on include/net/if_inet6.h
|
||||
* Authors:
|
||||
* Pedro Roque <roque@di.fc.ul.pt>
|
||||
*
|
||||
* NewIP inet interface/address list definitions
|
||||
* Linux NewIP INET implementation
|
||||
*
|
||||
* Based on include/net/if_inet6.h
|
||||
*/
|
||||
#ifndef _NET_IF_NINET_H
|
||||
#define _NET_IF_NINET_H
|
||||
Vendored
+2
-3
@@ -1,10 +1,9 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Based on include/net/netns/ipv6.h
|
||||
* No Authors, no Copyright
|
||||
*
|
||||
* NewIP in net namespaces
|
||||
*
|
||||
* Based on include/net/netns/ipv6.h
|
||||
*/
|
||||
#ifndef __NETNS_NEWIP_H__
|
||||
#define __NETNS_NEWIP_H__
|
||||
+2
-3
@@ -1,11 +1,10 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Based on include/net/inet_connection_sock.h
|
||||
* Authors: Many people, see the TCP sources
|
||||
*
|
||||
* NewIP NET
|
||||
* Generic infrastructure for NewIP INET connection oriented protocols.
|
||||
*
|
||||
* Based on include/net/inet_connection_sock.h
|
||||
*/
|
||||
#ifndef _NINET_CONNECTION_SOCK_H
|
||||
#define _NINET_CONNECTION_SOCK_H
|
||||
+2
-3
@@ -1,13 +1,12 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Based on include/net/inet6_hashtables.h
|
||||
* Authors: Lotsa people, from code originally in tcp
|
||||
*
|
||||
* NewIP INET
|
||||
* An implementation of the TCP/IP protocol suite for the LINUX
|
||||
* operating system. NewIP INET is implemented using the BSD Socket
|
||||
* interface as the means of communication with the user level.
|
||||
*
|
||||
* Based on include/net/inet6_hashtables.h
|
||||
*/
|
||||
#ifndef NINET_HASHTABLES_H
|
||||
#define NINET_HASHTABLES_H
|
||||
+16
-4
@@ -1,6 +1,21 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Based on include/net/ip.h
|
||||
* Authors: Ross Biro
|
||||
* Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
|
||||
* Alan Cox, <gw4pts@gw4pts.ampr.org>
|
||||
*
|
||||
* Changes:
|
||||
* Mike McLagan : Routing by source
|
||||
*
|
||||
* Based on include/net/protocol.h
|
||||
* Author: Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
|
||||
*
|
||||
* Changes:
|
||||
* Alan Cox : Added a name field and a frag handler
|
||||
* field for later.
|
||||
* Alan Cox : Cleaned up, and sorted types.
|
||||
* Pedro Roque : inet6 protocols
|
||||
*
|
||||
* NewIP INET
|
||||
* An implementation of the TCP/IP protocol suite for the LINUX
|
||||
@@ -8,9 +23,6 @@
|
||||
* interface as the means of communication with the user level.
|
||||
*
|
||||
* Definitions for the NewIP module.
|
||||
*
|
||||
* Based on include/net/ip.h
|
||||
* Based on include/net/protocol.h
|
||||
*/
|
||||
#ifndef _NET_NEWIP_H
|
||||
#define _NET_NEWIP_H
|
||||
+1
-2
@@ -1,8 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
*
|
||||
* Based on include/net/addrconf.h
|
||||
* No Authors, no Copyright
|
||||
*/
|
||||
#ifndef _NIP_ADDRCONF_H
|
||||
#define _NIP_ADDRCONF_H
|
||||
Vendored
+3
-3
@@ -1,10 +1,10 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Based on include/net/ip6_fib.h
|
||||
*
|
||||
* Linux NewIP INET implementation
|
||||
*
|
||||
* Based on include/net/ip6_fib.h
|
||||
* Authors:
|
||||
* Pedro Roque <roque@di.fc.ul.pt>
|
||||
*/
|
||||
#ifndef _NET_NEWIP_FIB_H
|
||||
#define _NET_NEWIP_FIB_H
|
||||
Vendored
+1
-2
@@ -1,8 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
*
|
||||
* Based on include/net/ip6_route.h
|
||||
* No Authors, no Copyright
|
||||
*/
|
||||
#ifndef _NET_NIP_ROUTE_H
|
||||
#define _NET_NIP_ROUTE_H
|
||||
Vendored
+7
-3
@@ -1,6 +1,12 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Based on include/net/udp.h
|
||||
* Authors: Ross Biro
|
||||
* Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
|
||||
*
|
||||
* Fixes:
|
||||
* Alan Cox : Turned on udp checksums. I don't want to
|
||||
* chase 'memory corruption' bugs that aren't!
|
||||
*
|
||||
* NewIP INET
|
||||
* An implementation of the TCP/IP protocol suite for the LINUX
|
||||
@@ -8,8 +14,6 @@
|
||||
* interface as the means of communication with the user level.
|
||||
*
|
||||
* Definitions for the NewIP UDP module.
|
||||
*
|
||||
* Based on include/net/udp.h
|
||||
*/
|
||||
#ifndef _NET_NEWIP_UDP_H
|
||||
#define _NET_NEWIP_UDP_H
|
||||
Vendored
+2
-3
@@ -1,8 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
*
|
||||
* Based on include/net/ndisc.h
|
||||
* Based on include/net/ndisc.h
|
||||
* No Authors, no Copyright
|
||||
*/
|
||||
#ifndef _NNDISC_H
|
||||
#define _NNDISC_H
|
||||
Vendored
+13
-6
@@ -1,6 +1,16 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Based on include/net/tcp.h
|
||||
* Authors: Ross Biro
|
||||
* Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
|
||||
*
|
||||
* Based on include/linux/tcp.h
|
||||
* Author: Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
* 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* NewIP INET
|
||||
* An implementation of the TCP/IP protocol suite for the LINUX
|
||||
@@ -8,9 +18,6 @@
|
||||
* interface as the means of communication with the user level.
|
||||
*
|
||||
* Definitions for the NewIP TCP module.
|
||||
*
|
||||
* Based on include/net/tcp.h
|
||||
* Based on include/linux/tcp.h
|
||||
*/
|
||||
#ifndef _TCP_NIP_H
|
||||
#define _TCP_NIP_H
|
||||
@@ -59,8 +66,8 @@ extern struct proto tcp_nip_prot;
|
||||
|
||||
#define TCP_ARRAY_INDEX_2 2
|
||||
|
||||
#define TCP_NIP_KEEPALIVE_CYCLE_MS_DIVISOR 20 /* 1 HZ = 1 seconds */
|
||||
#define TCP_NIP_CSK_KEEPALIVE_CYCLE 10 /* 1 HZ = 1 seconds */
|
||||
#define TCP_NIP_KEEPALIVE_CYCLE_MS_DIVISOR 20
|
||||
#define TCP_NIP_CSK_KEEPALIVE_CYCLE 10
|
||||
|
||||
#define TCP_NIP_WINDOW_MAX 65535U
|
||||
|
||||
+1
-2
@@ -1,8 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
*
|
||||
* Based on include/net/transp_v6.h
|
||||
* No Authors, no Copyright
|
||||
*/
|
||||
#ifndef _TRANSP_NIP_H
|
||||
#define _TRANSP_NIP_H
|
||||
+3
-3
@@ -1,11 +1,11 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Based on include/uapi/linux/ipv6_route.h
|
||||
* Authors:
|
||||
* Pedro Roque <roque@di.fc.ul.pt>
|
||||
*
|
||||
* Linux NewIP INET implementation
|
||||
*
|
||||
* Based on include/uapi/linux/ipv6_route.h
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version
|
||||
+5
-3
@@ -1,9 +1,11 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
*
|
||||
* Based on include/uapi/linux/ipv6.h
|
||||
* No Authors, no Copyright
|
||||
*
|
||||
* Based on include/uapi/linux/in6.h
|
||||
* Authors:
|
||||
* Pedro Roque <roque@di.fc.ul.pt>
|
||||
*/
|
||||
#ifndef _UAPI_NEWIP_H
|
||||
#define _UAPI_NEWIP_H
|
||||
+2
-3
@@ -1,6 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Based on include/uapi/linux/icmp.h
|
||||
* Author: Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
|
||||
*
|
||||
* NewIP INET
|
||||
* An implementation of the TCP/IP protocol suite for the LINUX
|
||||
@@ -8,8 +9,6 @@
|
||||
* interface as the means of communication with the user level.
|
||||
*
|
||||
* Definitions for the NewIP ICMP protocol.
|
||||
*
|
||||
* Based on include/uapi/linux/icmp.h
|
||||
*/
|
||||
#ifndef _UAPI_LINUX_NIP_ICMP_H
|
||||
#define _UAPI_LINUX_NIP_ICMP_H
|
||||
Vendored
+8
-3
@@ -1,11 +1,16 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Based on linux/net/ipv6/af_inet6.c
|
||||
* Authors:
|
||||
* Pedro Roque <roque@di.fc.ul.pt>
|
||||
*
|
||||
* Fixes:
|
||||
* piggy, Karl Knutson : Socket protocol table
|
||||
* Hideaki YOSHIFUJI : sin6_scope_id support
|
||||
* Arnaldo Melo : check proc_net_create return, cleanups
|
||||
*
|
||||
* NewIP INET socket protocol family
|
||||
* Linux NewIP INET implementation
|
||||
*
|
||||
* Based on linux/net/ipv6/af_inet6.c
|
||||
*/
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": [%s:%d] " fmt, __func__, __LINE__
|
||||
|
||||
Vendored
+17
-2
@@ -1,6 +1,22 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Based on net/ipv4/devinet.c
|
||||
* Authors: Ross Biro
|
||||
* Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
|
||||
* Mark Evans, <evansmp@uhura.aston.ac.uk>
|
||||
*
|
||||
* Additional Authors:
|
||||
* Alan Cox, <gw4pts@gw4pts.ampr.org>
|
||||
* Alexey Kuznetsov, <kuznet@ms2.inr.ac.ru>
|
||||
*
|
||||
* Changes:
|
||||
* Alexey Kuznetsov: pa_* fields are replaced with ifaddr
|
||||
* lists.
|
||||
* Cyrus Durgin: updated for kmod
|
||||
* Matthias Andree: in devinet_ioctl, compare label and
|
||||
* address (4.4BSD alias style support),
|
||||
* fall back to comparing just the label
|
||||
* if no match found.
|
||||
*
|
||||
* NewIP INET
|
||||
* An implementation of the TCP/IP protocol suite for the LINUX
|
||||
@@ -8,7 +24,6 @@
|
||||
* interface as the means of communication with the user level.
|
||||
*
|
||||
* DEVICE - NEWIP device support.
|
||||
* Based on net/ipv4/devinet.c
|
||||
*/
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": [%s:%d] " fmt, __func__, __LINE__
|
||||
|
||||
+15
-4
@@ -1,12 +1,23 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Based on net/ipv6/icmp.c
|
||||
* Authors:
|
||||
* Pedro Roque <roque@di.fc.ul.pt>
|
||||
*
|
||||
* Changes:
|
||||
*
|
||||
* Andi Kleen : exception handling
|
||||
* Andi Kleen add rate limits. never reply to a icmp.
|
||||
* add more length checks and other fixes.
|
||||
* yoshfuji : ensure to sent parameter problem for
|
||||
* fragments.
|
||||
* YOSHIFUJI Hideaki @USAGI: added sysctl for icmp rate limit.
|
||||
* Randy Dunlap and
|
||||
* YOSHIFUJI Hideaki @USAGI: Per-interface statistics support
|
||||
* Kazunori MIYAZAWA @USAGI: change output process to use ip6_append_data
|
||||
*
|
||||
* Internet Control Message Protocol (NewIP ICMP)
|
||||
* Linux NewIP INET implementation
|
||||
*
|
||||
* Based on net/ipv6/icmp.c
|
||||
* Based on net/ipv4/af_inet.c
|
||||
*/
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": [%s:%d] " fmt, __func__, __LINE__
|
||||
|
||||
+2
-3
@@ -1,6 +1,7 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Based on net/ipv4/inet_connection_sock.c
|
||||
* Authors: See the TCP sources
|
||||
*
|
||||
* NewIP INET
|
||||
* An implementation of the TCP/IP protocol suite for the LINUX
|
||||
@@ -8,8 +9,6 @@
|
||||
* interface as the means of communication with the user level.
|
||||
*
|
||||
* Support for NewIP INET connection oriented protocols.
|
||||
*
|
||||
* Based on net/ipv4/inet_connection_sock.c
|
||||
*/
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": [%s:%d] " fmt, __func__, __LINE__
|
||||
|
||||
+21
-7
@@ -1,6 +1,26 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Based on net/ipv4/inet_hashtables.c
|
||||
* Authors: Lotsa people, from code originally in tcp
|
||||
*
|
||||
* Based on net/ipv6/inet6_hashtables.c
|
||||
* Authors: Lotsa people, from code originally in tcp, generalised here
|
||||
* by Arnaldo Carvalho de Melo <acme@mandriva.com>
|
||||
*
|
||||
* Based on include/net/ip.h
|
||||
* Authors: Ross Biro
|
||||
* Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
|
||||
* Alan Cox, <gw4pts@gw4pts.ampr.org>
|
||||
*
|
||||
* Changes:
|
||||
* Mike McLagan : Routing by source
|
||||
*
|
||||
* Based on include/net/ipv6.h
|
||||
* Authors:
|
||||
* Pedro Roque <roque@di.fc.ul.pt>
|
||||
*
|
||||
* Based on net/core/secure_seq.c
|
||||
* Copyright (C) 2016 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved.
|
||||
*
|
||||
* NewIP INET
|
||||
* An implementation of the TCP/IP protocol suite for the LINUX
|
||||
@@ -8,12 +28,6 @@
|
||||
* interface as the means of communication with the user level.
|
||||
*
|
||||
* Generic NewIP INET transport hashtables
|
||||
*
|
||||
* Based on net/ipv4/inet_hashtables.c
|
||||
* Based on net/ipv6/inet6_hashtables.c
|
||||
* Based on include/net/ip.h
|
||||
* Based on include/net/ipv6.h
|
||||
* Based on net/core/secure_seq.c
|
||||
*/
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": [%s:%d] " fmt, __func__, __LINE__
|
||||
|
||||
+28
-3
@@ -1,11 +1,36 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Based on net/ipv6/addrconf.c
|
||||
* Authors:
|
||||
* Pedro Roque <roque@di.fc.ul.pt>
|
||||
* Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>
|
||||
*
|
||||
* Changes:
|
||||
*
|
||||
* Janos Farkas : delete timer on ifdown
|
||||
* <chexum@bankinf.banki.hu>
|
||||
* Andi Kleen : kill double kfree on module
|
||||
* unload.
|
||||
* Maciej W. Rozycki : FDDI support
|
||||
* sekiya@USAGI : Don't send too many RS
|
||||
* packets.
|
||||
* yoshfuji@USAGI : Fixed interval between DAD
|
||||
* packets.
|
||||
* YOSHIFUJI Hideaki @USAGI : improved accuracy of
|
||||
* address validation timer.
|
||||
* YOSHIFUJI Hideaki @USAGI : Privacy Extensions (RFC3041)
|
||||
* support.
|
||||
* Yuji SEKIYA @USAGI : Don't assign a same IPv6
|
||||
* address on a same interface.
|
||||
* YOSHIFUJI Hideaki @USAGI : ARCnet support
|
||||
* YOSHIFUJI Hideaki @USAGI : convert /proc/net/if_inet6 to
|
||||
* seq_file.
|
||||
* YOSHIFUJI Hideaki @USAGI : improved source address
|
||||
* selection; consider scope,
|
||||
* status etc.
|
||||
*
|
||||
* NewIP Address [auto]configuration
|
||||
* Linux NewIP INET implementation
|
||||
*
|
||||
* Based on net/ipv6/addrconf.c
|
||||
*/
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": [%s:%d] " fmt, __func__, __LINE__
|
||||
|
||||
+2
-3
@@ -1,11 +1,10 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Based on net/ipv6/addrconf_core.c
|
||||
* No Authors, no Copyright
|
||||
*
|
||||
* NewIP library code, needed by static components when full NewIP support is
|
||||
* not configured or static.
|
||||
*
|
||||
* Based on net/ipv6/addrconf_core.c
|
||||
*/
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": [%s:%d] " fmt, __func__, __LINE__
|
||||
|
||||
Vendored
+9
-3
@@ -1,11 +1,17 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Based on net/ipv6/ip6_fib.c
|
||||
* Authors:
|
||||
* Pedro Roque <roque@di.fc.ul.pt>
|
||||
*
|
||||
* Changes:
|
||||
* Yuji SEKIYA @USAGI: Support default route on router node;
|
||||
* remove ip6_null_entry from the top of
|
||||
* routing table.
|
||||
* Ville Nuorvala: Fixed routing subtrees.
|
||||
*
|
||||
* Linux NewIP INET implementation
|
||||
* Forwarding Information Database
|
||||
*
|
||||
* Based on net/ipv6/ip6_fib.c
|
||||
*/
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": [%s:%d] " fmt, __func__, __LINE__
|
||||
|
||||
+16
-5
@@ -1,11 +1,22 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Based on net/ipv4/fib_rules.c
|
||||
* Authors: Alexey Kuznetsov, <kuznet@ms2.inr.ac.ru>
|
||||
* Thomas Graf <tgraf@suug.ch>
|
||||
*
|
||||
* Fixes:
|
||||
* Rani Assaf : local_rule cannot be deleted
|
||||
* Marc Boucher : routing by fwmark
|
||||
*
|
||||
* Based on net/ipv6/fib6_rules.c
|
||||
* Copyright (C)2003-2006 Helsinki University of Technology
|
||||
* Copyright (C)2003-2006 USAGI/WIDE Project
|
||||
*
|
||||
* Authors
|
||||
* Thomas Graf <tgraf@suug.ch>
|
||||
* Ville Nuorvala <vnuorval@tcs.hut.fi>
|
||||
*
|
||||
* NewIP Routing Policy Rules
|
||||
*
|
||||
* Based on net/ipv6/fib_rules.c
|
||||
* Based on net/ipv6/fib6_rules.c
|
||||
*/
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": [%s:%d] " fmt, __func__, __LINE__
|
||||
|
||||
Vendored
+9
-3
@@ -1,11 +1,17 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Based on net/ipv6/ip6_input.c
|
||||
* Authors:
|
||||
* Pedro Roque <roque@di.fc.ul.pt>
|
||||
* Ian P. Morris <I.P.Morris@soton.ac.uk>
|
||||
*
|
||||
* Changes
|
||||
*
|
||||
* Mitsuru KANDA @USAGI and
|
||||
* YOSHIFUJI Hideaki @USAGI: Remove ipv6_parse_exthdrs().
|
||||
*
|
||||
* NewIP input
|
||||
* Linux NewIP INET implementation
|
||||
*
|
||||
* Based on net/ipv6/ip6_input.c
|
||||
*/
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": [%s:%d] " fmt, __func__, __LINE__
|
||||
|
||||
Vendored
+16
-3
@@ -1,11 +1,24 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Based on net/ipv6/ip6_output.c
|
||||
* Authors:
|
||||
* Pedro Roque <roque@di.fc.ul.pt>
|
||||
*
|
||||
* Changes:
|
||||
* A.N.Kuznetsov : airthmetics in fragmentation.
|
||||
* extension headers are implemented.
|
||||
* route changes now work.
|
||||
* ip6_forward does not confuse sniffers.
|
||||
* etc.
|
||||
*
|
||||
* H. von Brand : Added missing #include <linux/string.h>
|
||||
* Imran Patel : frag id should be in NBO
|
||||
* Kazunori MIYAZAWA @USAGI
|
||||
* : add ip6_append_data and related functions
|
||||
* for datagram xmit
|
||||
*
|
||||
* NewIP output functions
|
||||
* Linux NewIP INET implementation
|
||||
*
|
||||
* Based on net/ipv6/ip6_output.c
|
||||
*/
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": [%s:%d] " fmt, __func__, __LINE__
|
||||
|
||||
+9
-3
@@ -1,14 +1,20 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Based on net/ipv4/ip_sockglue.c
|
||||
* Authors: see ip.c
|
||||
*
|
||||
* Fixes:
|
||||
* Many : Split from ip.c , see ip.c for history.
|
||||
* Martin Mares : TOS setting fixed.
|
||||
* Alan Cox : Fixed a couple of oopses in Martin's
|
||||
* TOS tweaks.
|
||||
* Mike McLagan : Routing by source
|
||||
*
|
||||
* NewIP INET An implementation of the TCP/IP protocol suite for the LINUX
|
||||
* operating system. NewIP is implemented using the BSD Socket
|
||||
* interface as the means of communication with the user level.
|
||||
*
|
||||
* The NewIP to API glue.
|
||||
*
|
||||
* Based on net/ipv4/ip_sockglue.c
|
||||
*/
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": [%s:%d] " fmt, __func__, __LINE__
|
||||
|
||||
+17
-3
@@ -1,11 +1,25 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Based on net/ipv6/ndisc.c
|
||||
* Authors:
|
||||
* Pedro Roque <roque@di.fc.ul.pt>
|
||||
* Mike Shaver <shaver@ingenia.com>
|
||||
*
|
||||
* Changes:
|
||||
*
|
||||
* Alexey I. Froloff : RFC6106 (DNSSL) support
|
||||
* Pierre Ynard : export userland ND options
|
||||
* through netlink (RDNSS support)
|
||||
* Lars Fenneberg : fixed MTU setting on receipt
|
||||
* of an RA.
|
||||
* Janos Farkas : kmalloc failure checks
|
||||
* Alexey Kuznetsov : state machine reworked
|
||||
* and moved to net/core.
|
||||
* Pekka Savola : RFC2461 validation
|
||||
* YOSHIFUJI Hideaki @USAGI : Verify ND options properly
|
||||
*
|
||||
* Neighbour Discovery for NewIP
|
||||
* Linux NewIP INET implementation
|
||||
*
|
||||
* Based on net/ipv6/ndisc.c
|
||||
*/
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": [%s:%d] " fmt, __func__, __LINE__
|
||||
|
||||
Vendored
+8
-3
@@ -1,14 +1,19 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Based on net/ipv6/protocol.c
|
||||
* Authors: Pedro Roque <roque@di.fc.ul.pt>
|
||||
*
|
||||
* Changes:
|
||||
*
|
||||
* Vince Laviano (vince@cs.stanford.edu) 16 May 2001
|
||||
* - Removed unused variable 'inet6_protocol_base'
|
||||
* - Modified inet6_del_protocol() to correctly maintain copy bit.
|
||||
*
|
||||
* NewIP INET An implementation of the TCP/IP protocol suite for the LINUX
|
||||
* operating system. NewIP INET is implemented using the BSD Socket
|
||||
* interface as the means of communication with the user level.
|
||||
*
|
||||
* NewIP INET protocol dispatch tables.
|
||||
*
|
||||
* Based on net/ipv6/protocol.c
|
||||
*/
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": [%s:%d] " fmt, __func__, __LINE__
|
||||
|
||||
+67
-4
@@ -1,6 +1,72 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Based on net/ipv4/route.c
|
||||
* Authors: Ross Biro
|
||||
* Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
|
||||
* Alan Cox, <gw4pts@gw4pts.ampr.org>
|
||||
* Linus Torvalds, <Linus.Torvalds@helsinki.fi>
|
||||
* Alexey Kuznetsov, <kuznet@ms2.inr.ac.ru>
|
||||
*
|
||||
* Fixes:
|
||||
* Alan Cox : Verify area fixes.
|
||||
* Alan Cox : cli() protects routing changes
|
||||
* Rui Oliveira : ICMP routing table updates
|
||||
* (rco@di.uminho.pt) Routing table insertion and update
|
||||
* Linus Torvalds : Rewrote bits to be sensible
|
||||
* Alan Cox : Added BSD route gw semantics
|
||||
* Alan Cox : Super /proc >4K
|
||||
* Alan Cox : MTU in route table
|
||||
* Alan Cox : MSS actually. Also added the window
|
||||
* clamper.
|
||||
* Sam Lantinga : Fixed route matching in rt_del()
|
||||
* Alan Cox : Routing cache support.
|
||||
* Alan Cox : Removed compatibility cruft.
|
||||
* Alan Cox : RTF_REJECT support.
|
||||
* Alan Cox : TCP irtt support.
|
||||
* Jonathan Naylor : Added Metric support.
|
||||
* Miquel van Smoorenburg : BSD API fixes.
|
||||
* Miquel van Smoorenburg : Metrics.
|
||||
* Alan Cox : Use __u32 properly
|
||||
* Alan Cox : Aligned routing errors more closely with BSD
|
||||
* our system is still very different.
|
||||
* Alan Cox : Faster /proc handling
|
||||
* Alexey Kuznetsov : Massive rework to support tree based routing,
|
||||
* routing caches and better behaviour.
|
||||
*
|
||||
* Olaf Erb : irtt wasn't being copied right.
|
||||
* Bjorn Ekwall : Kerneld route support.
|
||||
* Alan Cox : Multicast fixed (I hope)
|
||||
* Pavel Krauz : Limited broadcast fixed
|
||||
* Mike McLagan : Routing by source
|
||||
* Alexey Kuznetsov : End of old history. Split to fib.c and
|
||||
* route.c and rewritten from scratch.
|
||||
* Andi Kleen : Load-limit warning messages.
|
||||
* Vitaly E. Lavrov : Transparent proxy revived after year coma.
|
||||
* Vitaly E. Lavrov : Race condition in ip_route_input_slow.
|
||||
* Tobias Ringstrom : Uninitialized res.type in ip_route_output_slow.
|
||||
* Vladimir V. Ivanov : IP rule info (flowid) is really useful.
|
||||
* Marc Boucher : routing by fwmark
|
||||
* Robert Olsson : Added rt_cache statistics
|
||||
* Arnaldo C. Melo : Convert proc stuff to seq_file
|
||||
* Eric Dumazet : hashed spinlocks and rt_check_expire() fixes.
|
||||
* Ilia Sotnikov : Ignore TOS on PMTUD and Redirect
|
||||
* Ilia Sotnikov : Removed TOS from hash calculations
|
||||
*
|
||||
* Based on net/ipv6/route.c
|
||||
* Authors:
|
||||
* Pedro Roque <roque@di.fc.ul.pt>
|
||||
*
|
||||
* Changes:
|
||||
*
|
||||
* YOSHIFUJI Hideaki @USAGI
|
||||
* reworked default router selection.
|
||||
* - respect outgoing interface
|
||||
* - select from (probably) reachable routers (i.e.
|
||||
* routers in REACHABLE, STALE, DELAY or PROBE states).
|
||||
* - always select the same router if it is (probably)
|
||||
* reachable. otherwise, round-robin the list.
|
||||
* Ville Nuorvala
|
||||
* Fixed routing subtrees.
|
||||
*
|
||||
* NewIP INET
|
||||
* An implementation of the TCP/IP protocol suite for the LINUX
|
||||
@@ -8,9 +74,6 @@
|
||||
* interface as the means of communication with the user level.
|
||||
*
|
||||
* ROUTE - implementation of the NewIP router.
|
||||
*
|
||||
* Based on net/ipv4/route.c
|
||||
* Based on net/ipv6/route.c
|
||||
*/
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": [%s:%d] " fmt, __func__, __LINE__
|
||||
|
||||
Vendored
+327
-7
@@ -1,6 +1,331 @@
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Based on net/ipv4/tcp.c
|
||||
* Authors: Ross Biro
|
||||
* Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
|
||||
* Mark Evans, <evansmp@uhura.aston.ac.uk>
|
||||
* Corey Minyard <wf-rch!minyard@relay.EU.net>
|
||||
* Florian La Roche, <flla@stud.uni-sb.de>
|
||||
* Charles Hedrick, <hedrick@klinzhai.rutgers.edu>
|
||||
* Linus Torvalds, <torvalds@cs.helsinki.fi>
|
||||
* Alan Cox, <gw4pts@gw4pts.ampr.org>
|
||||
* Matthew Dillon, <dillon@apollo.west.oic.com>
|
||||
* Arnt Gulbrandsen, <agulbra@nvg.unit.no>
|
||||
* Jorge Cwik, <jorge@laser.satlink.net>
|
||||
*
|
||||
* Fixes:
|
||||
* Alan Cox : Numerous verify_area() calls
|
||||
* Alan Cox : Set the ACK bit on a reset
|
||||
* Alan Cox : Stopped it crashing if it closed while
|
||||
* sk->inuse=1 and was trying to connect
|
||||
* (tcp_err()).
|
||||
* Alan Cox : All icmp error handling was broken
|
||||
* pointers passed where wrong and the
|
||||
* socket was looked up backwards. Nobody
|
||||
* tested any icmp error code obviously.
|
||||
* Alan Cox : tcp_err() now handled properly. It
|
||||
* wakes people on errors. poll
|
||||
* behaves and the icmp error race
|
||||
* has gone by moving it into sock.c
|
||||
* Alan Cox : tcp_send_reset() fixed to work for
|
||||
* everything not just packets for
|
||||
* unknown sockets.
|
||||
* Alan Cox : tcp option processing.
|
||||
* Alan Cox : Reset tweaked (still not 100%) [Had
|
||||
* syn rule wrong]
|
||||
* Herp Rosmanith : More reset fixes
|
||||
* Alan Cox : No longer acks invalid rst frames.
|
||||
* Acking any kind of RST is right out.
|
||||
* Alan Cox : Sets an ignore me flag on an rst
|
||||
* receive otherwise odd bits of prattle
|
||||
* escape still
|
||||
* Alan Cox : Fixed another acking RST frame bug.
|
||||
* Should stop LAN workplace lockups.
|
||||
* Alan Cox : Some tidyups using the new skb list
|
||||
* facilities
|
||||
* Alan Cox : sk->keepopen now seems to work
|
||||
* Alan Cox : Pulls options out correctly on accepts
|
||||
* Alan Cox : Fixed assorted sk->rqueue->next errors
|
||||
* Alan Cox : PSH doesn't end a TCP read. Switched a
|
||||
* bit to skb ops.
|
||||
* Alan Cox : Tidied tcp_data to avoid a potential
|
||||
* nasty.
|
||||
* Alan Cox : Added some better commenting, as the
|
||||
* tcp is hard to follow
|
||||
* Alan Cox : Removed incorrect check for 20 * psh
|
||||
* Michael O'Reilly : ack < copied bug fix.
|
||||
* Johannes Stille : Misc tcp fixes (not all in yet).
|
||||
* Alan Cox : FIN with no memory -> CRASH
|
||||
* Alan Cox : Added socket option proto entries.
|
||||
* Also added awareness of them to accept.
|
||||
* Alan Cox : Added TCP options (SOL_TCP)
|
||||
* Alan Cox : Switched wakeup calls to callbacks,
|
||||
* so the kernel can layer network
|
||||
* sockets.
|
||||
* Alan Cox : Use ip_tos/ip_ttl settings.
|
||||
* Alan Cox : Handle FIN (more) properly (we hope).
|
||||
* Alan Cox : RST frames sent on unsynchronised
|
||||
* state ack error.
|
||||
* Alan Cox : Put in missing check for SYN bit.
|
||||
* Alan Cox : Added tcp_select_window() aka NET2E
|
||||
* window non shrink trick.
|
||||
* Alan Cox : Added a couple of small NET2E timer
|
||||
* fixes
|
||||
* Charles Hedrick : TCP fixes
|
||||
* Toomas Tamm : TCP window fixes
|
||||
* Alan Cox : Small URG fix to rlogin ^C ack fight
|
||||
* Charles Hedrick : Rewrote most of it to actually work
|
||||
* Linus : Rewrote tcp_read() and URG handling
|
||||
* completely
|
||||
* Gerhard Koerting: Fixed some missing timer handling
|
||||
* Matthew Dillon : Reworked TCP machine states as per RFC
|
||||
* Gerhard Koerting: PC/TCP workarounds
|
||||
* Adam Caldwell : Assorted timer/timing errors
|
||||
* Matthew Dillon : Fixed another RST bug
|
||||
* Alan Cox : Move to kernel side addressing changes.
|
||||
* Alan Cox : Beginning work on TCP fastpathing
|
||||
* (not yet usable)
|
||||
* Arnt Gulbrandsen: Turbocharged tcp_check() routine.
|
||||
* Alan Cox : TCP fast path debugging
|
||||
* Alan Cox : Window clamping
|
||||
* Michael Riepe : Bug in tcp_check()
|
||||
* Matt Dillon : More TCP improvements and RST bug fixes
|
||||
* Matt Dillon : Yet more small nasties remove from the
|
||||
* TCP code (Be very nice to this man if
|
||||
* tcp finally works 100%) 8)
|
||||
* Alan Cox : BSD accept semantics.
|
||||
* Alan Cox : Reset on closedown bug.
|
||||
* Peter De Schrijver : ENOTCONN check missing in tcp_sendto().
|
||||
* Michael Pall : Handle poll() after URG properly in
|
||||
* all cases.
|
||||
* Michael Pall : Undo the last fix in tcp_read_urg()
|
||||
* (multi URG PUSH broke rlogin).
|
||||
* Michael Pall : Fix the multi URG PUSH problem in
|
||||
* tcp_readable(), poll() after URG
|
||||
* works now.
|
||||
* Michael Pall : recv(...,MSG_OOB) never blocks in the
|
||||
* BSD api.
|
||||
* Alan Cox : Changed the semantics of sk->socket to
|
||||
* fix a race and a signal problem with
|
||||
* accept() and async I/O.
|
||||
* Alan Cox : Relaxed the rules on tcp_sendto().
|
||||
* Yury Shevchuk : Really fixed accept() blocking problem.
|
||||
* Craig I. Hagan : Allow for BSD compatible TIME_WAIT for
|
||||
* clients/servers which listen in on
|
||||
* fixed ports.
|
||||
* Alan Cox : Cleaned the above up and shrank it to
|
||||
* a sensible code size.
|
||||
* Alan Cox : Self connect lockup fix.
|
||||
* Alan Cox : No connect to multicast.
|
||||
* Ross Biro : Close unaccepted children on master
|
||||
* socket close.
|
||||
* Alan Cox : Reset tracing code.
|
||||
* Alan Cox : Spurious resets on shutdown.
|
||||
* Alan Cox : Giant 15 minute/60 second timer error
|
||||
* Alan Cox : Small whoops in polling before an
|
||||
* accept.
|
||||
* Alan Cox : Kept the state trace facility since
|
||||
* it's handy for debugging.
|
||||
* Alan Cox : More reset handler fixes.
|
||||
* Alan Cox : Started rewriting the code based on
|
||||
* the RFC's for other useful protocol
|
||||
* references see: Comer, KA9Q NOS, and
|
||||
* for a reference on the difference
|
||||
* between specifications and how BSD
|
||||
* works see the 4.4lite source.
|
||||
* A.N.Kuznetsov : Don't time wait on completion of tidy
|
||||
* close.
|
||||
* Linus Torvalds : Fin/Shutdown & copied_seq changes.
|
||||
* Linus Torvalds : Fixed BSD port reuse to work first syn
|
||||
* Alan Cox : Reimplemented timers as per the RFC
|
||||
* and using multiple timers for sanity.
|
||||
* Alan Cox : Small bug fixes, and a lot of new
|
||||
* comments.
|
||||
* Alan Cox : Fixed dual reader crash by locking
|
||||
* the buffers (much like datagram.c)
|
||||
* Alan Cox : Fixed stuck sockets in probe. A probe
|
||||
* now gets fed up of retrying without
|
||||
* (even a no space) answer.
|
||||
* Alan Cox : Extracted closing code better
|
||||
* Alan Cox : Fixed the closing state machine to
|
||||
* resemble the RFC.
|
||||
* Alan Cox : More 'per spec' fixes.
|
||||
* Jorge Cwik : Even faster checksumming.
|
||||
* Alan Cox : tcp_data() doesn't ack illegal PSH
|
||||
* only frames. At least one pc tcp stack
|
||||
* generates them.
|
||||
* Alan Cox : Cache last socket.
|
||||
* Alan Cox : Per route irtt.
|
||||
* Matt Day : poll()->select() match BSD precisely on error
|
||||
* Alan Cox : New buffers
|
||||
* Marc Tamsky : Various sk->prot->retransmits and
|
||||
* sk->retransmits misupdating fixed.
|
||||
* Fixed tcp_write_timeout: stuck close,
|
||||
* and TCP syn retries gets used now.
|
||||
* Mark Yarvis : In tcp_read_wakeup(), don't send an
|
||||
* ack if state is TCP_CLOSED.
|
||||
* Alan Cox : Look up device on a retransmit - routes may
|
||||
* change. Doesn't yet cope with MSS shrink right
|
||||
* but it's a start!
|
||||
* Marc Tamsky : Closing in closing fixes.
|
||||
* Mike Shaver : RFC1122 verifications.
|
||||
* Alan Cox : rcv_saddr errors.
|
||||
* Alan Cox : Block double connect().
|
||||
* Alan Cox : Small hooks for enSKIP.
|
||||
* Alexey Kuznetsov: Path MTU discovery.
|
||||
* Alan Cox : Support soft errors.
|
||||
* Alan Cox : Fix MTU discovery pathological case
|
||||
* when the remote claims no mtu!
|
||||
* Marc Tamsky : TCP_CLOSE fix.
|
||||
* Colin (G3TNE) : Send a reset on syn ack replies in
|
||||
* window but wrong (fixes NT lpd problems)
|
||||
* Pedro Roque : Better TCP window handling, delayed ack.
|
||||
* Joerg Reuter : No modification of locked buffers in
|
||||
* tcp_do_retransmit()
|
||||
* Eric Schenk : Changed receiver side silly window
|
||||
* avoidance algorithm to BSD style
|
||||
* algorithm. This doubles throughput
|
||||
* against machines running Solaris,
|
||||
* and seems to result in general
|
||||
* improvement.
|
||||
* Stefan Magdalinski : adjusted tcp_readable() to fix FIONREAD
|
||||
* Willy Konynenberg : Transparent proxying support.
|
||||
* Mike McLagan : Routing by source
|
||||
* Keith Owens : Do proper merging with partial SKB's in
|
||||
* tcp_do_sendmsg to avoid burstiness.
|
||||
* Eric Schenk : Fix fast close down bug with
|
||||
* shutdown() followed by close().
|
||||
* Andi Kleen : Make poll agree with SIGIO
|
||||
* Salvatore Sanfilippo : Support SO_LINGER with linger == 1 and
|
||||
* lingertime == 0 (RFC 793 ABORT Call)
|
||||
* Hirokazu Takahashi : Use copy_from_user() instead of
|
||||
* csum_and_copy_from_user() if possible.
|
||||
*
|
||||
* Based on net/ipv4/tcp_ipv4.c
|
||||
* See tcp.c for author information
|
||||
*
|
||||
* Changes:
|
||||
* David S. Miller : New socket lookup architecture.
|
||||
* This code is dedicated to John Dyson.
|
||||
* David S. Miller : Change semantics of established hash,
|
||||
* half is devoted to TIME_WAIT sockets
|
||||
* and the rest go in the other half.
|
||||
* Andi Kleen : Add support for syncookies and fixed
|
||||
* some bugs: ip options weren't passed to
|
||||
* the TCP layer, missed a check for an
|
||||
* ACK bit.
|
||||
* Andi Kleen : Implemented fast path mtu discovery.
|
||||
* Fixed many serious bugs in the
|
||||
* request_sock handling and moved
|
||||
* most of it into the af independent code.
|
||||
* Added tail drop and some other bugfixes.
|
||||
* Added new listen semantics.
|
||||
* Mike McLagan : Routing by source
|
||||
* Juan Jose Ciarlante: ip_dynaddr bits
|
||||
* Andi Kleen: various fixes.
|
||||
* Vitaly E. Lavrov : Transparent proxy revived after year
|
||||
* coma.
|
||||
* Andi Kleen : Fix new listen.
|
||||
* Andi Kleen : Fix accept error reporting.
|
||||
* YOSHIFUJI Hideaki @USAGI and: Support IPV6_V6ONLY socket option, which
|
||||
* Alexey Kuznetsov allow both IPv4 and IPv6 sockets to bind
|
||||
* a single port at the same time.
|
||||
*
|
||||
* Based on net/ipv6/tcp_ipv6.c
|
||||
* Authors:
|
||||
* Pedro Roque <roque@di.fc.ul.pt>
|
||||
*
|
||||
* Fixes:
|
||||
* Hideaki YOSHIFUJI : sin6_scope_id support
|
||||
* YOSHIFUJI Hideaki @USAGI and: Support IPV6_V6ONLY socket option, which
|
||||
* Alexey Kuznetsov allow both IPv4 and IPv6 sockets to bind
|
||||
* a single port at the same time.
|
||||
* YOSHIFUJI Hideaki @USAGI: convert /proc/net/tcp6 to seq_file.
|
||||
*
|
||||
* Based on net/core/stream.c
|
||||
* Authors: Arnaldo Carvalho de Melo <acme@conectiva.com.br>
|
||||
* (from old tcp.c code)
|
||||
* Alan Cox <alan@lxorguk.ukuu.org.uk> (Borrowed comments 8-))
|
||||
*
|
||||
* Based on net/ipv4/tcp_output.c
|
||||
* Authors: Ross Biro
|
||||
* Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
|
||||
* Mark Evans, <evansmp@uhura.aston.ac.uk>
|
||||
* Corey Minyard <wf-rch!minyard@relay.EU.net>
|
||||
* Florian La Roche, <flla@stud.uni-sb.de>
|
||||
* Charles Hedrick, <hedrick@klinzhai.rutgers.edu>
|
||||
* Linus Torvalds, <torvalds@cs.helsinki.fi>
|
||||
* Alan Cox, <gw4pts@gw4pts.ampr.org>
|
||||
* Matthew Dillon, <dillon@apollo.west.oic.com>
|
||||
* Arnt Gulbrandsen, <agulbra@nvg.unit.no>
|
||||
* Jorge Cwik, <jorge@laser.satlink.net>
|
||||
*
|
||||
* Changes: Pedro Roque : Retransmit queue handled by TCP.
|
||||
* : Fragmentation on mtu decrease
|
||||
* : Segment collapse on retransmit
|
||||
* : AF independence
|
||||
*
|
||||
* Linus Torvalds : send_delayed_ack
|
||||
* David S. Miller : Charge memory using the right skb
|
||||
* during syn/ack processing.
|
||||
* David S. Miller : Output engine completely rewritten.
|
||||
* Andrea Arcangeli: SYNACK carry ts_recent in tsecr.
|
||||
* Cacophonix Gaul : draft-minshall-nagle-01
|
||||
* J Hadi Salim : ECN support
|
||||
*
|
||||
* Based on net/ipv4/tcp_input.c
|
||||
* Authors: Ross Biro
|
||||
* Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
|
||||
* Mark Evans, <evansmp@uhura.aston.ac.uk>
|
||||
* Corey Minyard <wf-rch!minyard@relay.EU.net>
|
||||
* Florian La Roche, <flla@stud.uni-sb.de>
|
||||
* Charles Hedrick, <hedrick@klinzhai.rutgers.edu>
|
||||
* Linus Torvalds, <torvalds@cs.helsinki.fi>
|
||||
* Alan Cox, <gw4pts@gw4pts.ampr.org>
|
||||
* Matthew Dillon, <dillon@apollo.west.oic.com>
|
||||
* Arnt Gulbrandsen, <agulbra@nvg.unit.no>
|
||||
* Jorge Cwik, <jorge@laser.satlink.net>
|
||||
*
|
||||
* Changes:
|
||||
* Pedro Roque : Fast Retransmit/Recovery.
|
||||
* Two receive queues.
|
||||
* Retransmit queue handled by TCP.
|
||||
* Better retransmit timer handling.
|
||||
* New congestion avoidance.
|
||||
* Header prediction.
|
||||
* Variable renaming.
|
||||
*
|
||||
* Eric : Fast Retransmit.
|
||||
* Randy Scott : MSS option defines.
|
||||
* Eric Schenk : Fixes to slow start algorithm.
|
||||
* Eric Schenk : Yet another double ACK bug.
|
||||
* Eric Schenk : Delayed ACK bug fixes.
|
||||
* Eric Schenk : Floyd style fast retrans war avoidance.
|
||||
* David S. Miller : Don't allow zero congestion window.
|
||||
* Eric Schenk : Fix retransmitter so that it sends
|
||||
* next packet on ack of previous packet.
|
||||
* Andi Kleen : Moved open_request checking here
|
||||
* and process RSTs for open_requests.
|
||||
* Andi Kleen : Better prune_queue, and other fixes.
|
||||
* Andrey Savochkin: Fix RTT measurements in the presence of
|
||||
* timestamps.
|
||||
* Andrey Savochkin: Check sequence numbers correctly when
|
||||
* removing SACKs due to in sequence incoming
|
||||
* data segments.
|
||||
* Andi Kleen: Make sure we never ack data there is not
|
||||
* enough room for. Also make this condition
|
||||
* a fatal error if it might still happen.
|
||||
* Andi Kleen: Add tcp_measure_rcv_mss to make
|
||||
* connections with MSS<min(MTU,ann. MSS)
|
||||
* work without delayed acks.
|
||||
* Andi Kleen: Process packets with PSH set in the
|
||||
* fast path.
|
||||
* J Hadi Salim: ECN support
|
||||
* Andrei Gurtov,
|
||||
* Pasi Sarolahti,
|
||||
* Panu Kuhlberg: Experimental audit of TCP (re)transmission
|
||||
* engine. Lots of bugs are found.
|
||||
* Pasi Sarolahti: F-RTO for dealing with spurious RTOs
|
||||
*
|
||||
* NewIP INET
|
||||
* An implementation of the TCP/IP protocol suite for the LINUX
|
||||
@@ -11,11 +336,6 @@
|
||||
*
|
||||
* TCP over NewIP
|
||||
*
|
||||
* Based on net/ipv4/tcp.c
|
||||
* Based on net/ipv4/tcp_ipv4.c
|
||||
* Based on net/ipv6/tcp_ipv6.c
|
||||
* Based on net/core/stream.c
|
||||
*
|
||||
* Description of States:
|
||||
*
|
||||
* TCP_SYN_SENT sent a connection request, waiting for ack
|
||||
+54
-6
@@ -1,6 +1,58 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
// SPDX-License-Identifier: GPL-2.0
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Based on net/ipv4/tcp_input.c
|
||||
* Authors: Ross Biro
|
||||
* Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
|
||||
* Mark Evans, <evansmp@uhura.aston.ac.uk>
|
||||
* Corey Minyard <wf-rch!minyard@relay.EU.net>
|
||||
* Florian La Roche, <flla@stud.uni-sb.de>
|
||||
* Charles Hedrick, <hedrick@klinzhai.rutgers.edu>
|
||||
* Linus Torvalds, <torvalds@cs.helsinki.fi>
|
||||
* Alan Cox, <gw4pts@gw4pts.ampr.org>
|
||||
* Matthew Dillon, <dillon@apollo.west.oic.com>
|
||||
* Arnt Gulbrandsen, <agulbra@nvg.unit.no>
|
||||
* Jorge Cwik, <jorge@laser.satlink.net>
|
||||
*
|
||||
* Changes:
|
||||
* Pedro Roque : Fast Retransmit/Recovery.
|
||||
* Two receive queues.
|
||||
* Retransmit queue handled by TCP.
|
||||
* Better retransmit timer handling.
|
||||
* New congestion avoidance.
|
||||
* Header prediction.
|
||||
* Variable renaming.
|
||||
*
|
||||
* Eric : Fast Retransmit.
|
||||
* Randy Scott : MSS option defines.
|
||||
* Eric Schenk : Fixes to slow start algorithm.
|
||||
* Eric Schenk : Yet another double ACK bug.
|
||||
* Eric Schenk : Delayed ACK bug fixes.
|
||||
* Eric Schenk : Floyd style fast retrans war avoidance.
|
||||
* David S. Miller : Don't allow zero congestion window.
|
||||
* Eric Schenk : Fix retransmitter so that it sends
|
||||
* next packet on ack of previous packet.
|
||||
* Andi Kleen : Moved open_request checking here
|
||||
* and process RSTs for open_requests.
|
||||
* Andi Kleen : Better prune_queue, and other fixes.
|
||||
* Andrey Savochkin: Fix RTT measurements in the presence of
|
||||
* timestamps.
|
||||
* Andrey Savochkin: Check sequence numbers correctly when
|
||||
* removing SACKs due to in sequence incoming
|
||||
* data segments.
|
||||
* Andi Kleen: Make sure we never ack data there is not
|
||||
* enough room for. Also make this condition
|
||||
* a fatal error if it might still happen.
|
||||
* Andi Kleen: Add tcp_measure_rcv_mss to make
|
||||
* connections with MSS<min(MTU,ann. MSS)
|
||||
* work without delayed acks.
|
||||
* Andi Kleen: Process packets with PSH set in the
|
||||
* fast path.
|
||||
* J Hadi Salim: ECN support
|
||||
* Andrei Gurtov,
|
||||
* Pasi Sarolahti,
|
||||
* Panu Kuhlberg: Experimental audit of TCP (re)transmission
|
||||
* engine. Lots of bugs are found.
|
||||
* Pasi Sarolahti: F-RTO for dealing with spurious RTOs
|
||||
*
|
||||
* NewIP INET
|
||||
* An implementation of the TCP/IP protocol suite for the LINUX
|
||||
@@ -8,10 +60,6 @@
|
||||
* interface as the means of communication with the user level.
|
||||
*
|
||||
* Implementation of the Transmission Control Protocol(TCP).
|
||||
*
|
||||
* Based on net/ipv4/tcp_input.c
|
||||
* Based on net/ipv4/tcp_output.c
|
||||
* Based on net/ipv4/tcp_minisocks.c
|
||||
*/
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": [%s:%d] " fmt, __func__, __LINE__
|
||||
|
||||
+38
-4
@@ -1,6 +1,43 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Based on net/ipv4/tcp_output.c
|
||||
* Authors: Ross Biro
|
||||
* Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
|
||||
* Mark Evans, <evansmp@uhura.aston.ac.uk>
|
||||
* Corey Minyard <wf-rch!minyard@relay.EU.net>
|
||||
* Florian La Roche, <flla@stud.uni-sb.de>
|
||||
* Charles Hedrick, <hedrick@klinzhai.rutgers.edu>
|
||||
* Linus Torvalds, <torvalds@cs.helsinki.fi>
|
||||
* Alan Cox, <gw4pts@gw4pts.ampr.org>
|
||||
* Matthew Dillon, <dillon@apollo.west.oic.com>
|
||||
* Arnt Gulbrandsen, <agulbra@nvg.unit.no>
|
||||
* Jorge Cwik, <jorge@laser.satlink.net>
|
||||
*
|
||||
* Changes: Pedro Roque : Retransmit queue handled by TCP.
|
||||
* : Fragmentation on mtu decrease
|
||||
* : Segment collapse on retransmit
|
||||
* : AF independence
|
||||
*
|
||||
* Linus Torvalds : send_delayed_ack
|
||||
* David S. Miller : Charge memory using the right skb
|
||||
* during syn/ack processing.
|
||||
* David S. Miller : Output engine completely rewritten.
|
||||
* Andrea Arcangeli: SYNACK carry ts_recent in tsecr.
|
||||
* Cacophonix Gaul : draft-minshall-nagle-01
|
||||
* J Hadi Salim : ECN support
|
||||
*
|
||||
* Based on net/ipv4/tcp_minisocks.c
|
||||
* Authors: Ross Biro
|
||||
* Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
|
||||
* Mark Evans, <evansmp@uhura.aston.ac.uk>
|
||||
* Corey Minyard <wf-rch!minyard@relay.EU.net>
|
||||
* Florian La Roche, <flla@stud.uni-sb.de>
|
||||
* Charles Hedrick, <hedrick@klinzhai.rutgers.edu>
|
||||
* Linus Torvalds, <torvalds@cs.helsinki.fi>
|
||||
* Alan Cox, <gw4pts@gw4pts.ampr.org>
|
||||
* Matthew Dillon, <dillon@apollo.west.oic.com>
|
||||
* Arnt Gulbrandsen, <agulbra@nvg.unit.no>
|
||||
* Jorge Cwik, <jorge@laser.satlink.net>
|
||||
*
|
||||
* NewIP INET
|
||||
* An implementation of the TCP/IP protocol suite for the LINUX
|
||||
@@ -8,9 +45,6 @@
|
||||
* interface as the means of communication with the user level.
|
||||
*
|
||||
* Implementation of the Transmission Control Protocol(TCP).
|
||||
*
|
||||
* Based on net/ipv4/tcp_output.c
|
||||
* Based on net/ipv4/tcp_minisocks.c
|
||||
*/
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": [%s:%d] " fmt, __func__, __LINE__
|
||||
|
||||
+12
-3
@@ -1,6 +1,17 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Based on net/ipv4/tcp_timer.c
|
||||
* Authors: Ross Biro
|
||||
* Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
|
||||
* Mark Evans, <evansmp@uhura.aston.ac.uk>
|
||||
* Corey Minyard <wf-rch!minyard@relay.EU.net>
|
||||
* Florian La Roche, <flla@stud.uni-sb.de>
|
||||
* Charles Hedrick, <hedrick@klinzhai.rutgers.edu>
|
||||
* Linus Torvalds, <torvalds@cs.helsinki.fi>
|
||||
* Alan Cox, <gw4pts@gw4pts.ampr.org>
|
||||
* Matthew Dillon, <dillon@apollo.west.oic.com>
|
||||
* Arnt Gulbrandsen, <agulbra@nvg.unit.no>
|
||||
* Jorge Cwik, <jorge@laser.satlink.net>
|
||||
*
|
||||
* NewIP INET
|
||||
* An implementation of the TCP/IP protocol suite for the LINUX
|
||||
@@ -8,8 +19,6 @@
|
||||
* interface as the means of communication with the user level.
|
||||
*
|
||||
* Implementation of the Transmission Control Protocol(TCP).
|
||||
*
|
||||
* Based on net/ipv4/tcp_timer.c
|
||||
*/
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": [%s:%d] " fmt, __func__, __LINE__
|
||||
|
||||
+77
-4
@@ -1,6 +1,82 @@
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
/*
|
||||
* Copyright (c) 2022 Huawei Device Co., Ltd.
|
||||
* Based on net/ipv4/udp.c
|
||||
* Authors: Ross Biro
|
||||
* Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
|
||||
* Arnt Gulbrandsen, <agulbra@nvg.unit.no>
|
||||
* Alan Cox, <alan@lxorguk.ukuu.org.uk>
|
||||
* Hirokazu Takahashi, <taka@valinux.co.jp>
|
||||
*
|
||||
* Fixes:
|
||||
* Alan Cox : verify_area() calls
|
||||
* Alan Cox : stopped close while in use off icmp
|
||||
* messages. Not a fix but a botch that
|
||||
* for udp at least is 'valid'.
|
||||
* Alan Cox : Fixed icmp handling properly
|
||||
* Alan Cox : Correct error for oversized datagrams
|
||||
* Alan Cox : Tidied select() semantics.
|
||||
* Alan Cox : udp_err() fixed properly, also now
|
||||
* select and read wake correctly on errors
|
||||
* Alan Cox : udp_send verify_area moved to avoid mem leak
|
||||
* Alan Cox : UDP can count its memory
|
||||
* Alan Cox : send to an unknown connection causes
|
||||
* an ECONNREFUSED off the icmp, but
|
||||
* does NOT close.
|
||||
* Alan Cox : Switched to new sk_buff handlers. No more backlog!
|
||||
* Alan Cox : Using generic datagram code. Even smaller and the PEEK
|
||||
* bug no longer crashes it.
|
||||
* Fred Van Kempen : Net2e support for sk->broadcast.
|
||||
* Alan Cox : Uses skb_free_datagram
|
||||
* Alan Cox : Added get/set sockopt support.
|
||||
* Alan Cox : Broadcasting without option set returns EACCES.
|
||||
* Alan Cox : No wakeup calls. Instead we now use the callbacks.
|
||||
* Alan Cox : Use ip_tos and ip_ttl
|
||||
* Alan Cox : SNMP Mibs
|
||||
* Alan Cox : MSG_DONTROUTE, and 0.0.0.0 support.
|
||||
* Matt Dillon : UDP length checks.
|
||||
* Alan Cox : Smarter af_inet used properly.
|
||||
* Alan Cox : Use new kernel side addressing.
|
||||
* Alan Cox : Incorrect return on truncated datagram receive.
|
||||
* Arnt Gulbrandsen : New udp_send and stuff
|
||||
* Alan Cox : Cache last socket
|
||||
* Alan Cox : Route cache
|
||||
* Jon Peatfield : Minor efficiency fix to sendto().
|
||||
* Mike Shaver : RFC1122 checks.
|
||||
* Alan Cox : Nonblocking error fix.
|
||||
* Willy Konynenberg : Transparent proxying support.
|
||||
* Mike McLagan : Routing by source
|
||||
* David S. Miller : New socket lookup architecture.
|
||||
* Last socket cache retained as it
|
||||
* does have a high hit rate.
|
||||
* Olaf Kirch : Don't linearise iovec on sendmsg.
|
||||
* Andi Kleen : Some cleanups, cache destination entry
|
||||
* for connect.
|
||||
* Vitaly E. Lavrov : Transparent proxy revived after year coma.
|
||||
* Melvin Smith : Check msg_name not msg_namelen in sendto(),
|
||||
* return ENOTCONN for unconnected sockets (POSIX)
|
||||
* Janos Farkas : don't deliver multi/broadcasts to a different
|
||||
* bound-to-device socket
|
||||
* Hirokazu Takahashi : HW checksumming for outgoing UDP
|
||||
* datagrams.
|
||||
* Hirokazu Takahashi : sendfile() on UDP works now.
|
||||
* Arnaldo C. Melo : convert /proc/net/udp to seq_file
|
||||
* YOSHIFUJI Hideaki @USAGI and: Support IPV6_V6ONLY socket option, which
|
||||
* Alexey Kuznetsov: allow both IPv4 and IPv6 sockets to bind
|
||||
* a single port at the same time.
|
||||
* Derek Atkins <derek@ihtfp.com>: Add Encapulation Support
|
||||
* James Chapman : Add L2TP encapsulation type.
|
||||
*
|
||||
* Based on net/ipv6/udp.c
|
||||
* Authors:
|
||||
* Pedro Roque <roque@di.fc.ul.pt>
|
||||
*
|
||||
* Fixes:
|
||||
* Hideaki YOSHIFUJI : sin6_scope_id support
|
||||
* YOSHIFUJI Hideaki @USAGI and: Support IPV6_V6ONLY socket option, which
|
||||
* Alexey Kuznetsov allow both IPv4 and IPv6 sockets to bind
|
||||
* a single port at the same time.
|
||||
* Kazunori MIYAZAWA @USAGI: change process style to use ip6_append_data
|
||||
* YOSHIFUJI Hideaki @USAGI: convert /proc/net/udp6 to seq_file.
|
||||
*
|
||||
* NewIP INET
|
||||
* An implementation of the TCP/IP protocol suite for the LINUX
|
||||
@@ -8,9 +84,6 @@
|
||||
* interface as the means of communication with the user level.
|
||||
*
|
||||
* The User Datagram Protocol (NewIP UDP).
|
||||
*
|
||||
* Based on net/ipv4/udp.c
|
||||
* Based on net/ipv6/udp.c
|
||||
*/
|
||||
#define pr_fmt(fmt) KBUILD_MODNAME ": [%s:%d] " fmt, __func__, __LINE__
|
||||
|
||||
Reference in New Issue
Block a user