From 2de79d97bad7930978b8fc1c213ba740d9136003 Mon Sep 17 00:00:00 2001 From: yangyanjun Date: Fri, 21 Apr 2023 16:20:50 +0800 Subject: [PATCH] =?UTF-8?q?newip=E5=BC=80=E6=BA=90=E5=90=88=E8=A7=84?= =?UTF-8?q?=E8=AF=84=E5=AE=A1=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: yangyanjun --- LICENSE | 365 +----------------- LICENSES-GPL-2.0 | 359 +++++++++++++++++ LICENSES-Linux-syscall-note | 25 ++ OAT.xml | 29 +- newip/README.OpenSource => README.OpenSource | 2 +- newip/README_zh.md | 11 +- newip/apply_newip.sh | 48 +-- newip/src/linux-5.10/drivers/net/bt/Makefile | 3 + newip/third_party/linux-5.10/LICENSES/GPL-2.0 | 359 +++++++++++++++++ .../linux-5.10/LICENSES/Linux-syscall-note | 25 ++ .../linux-5.10/include/linux/newip_route.h | 6 +- .../linux-5.10/include/linux/nip.h | 29 +- .../linux-5.10/include/linux/nip_icmp.h | 5 +- .../linux-5.10/include/net/flow_nip.h | 5 +- .../linux-5.10/include/net/if_ninet.h | 6 +- .../linux-5.10/include/net/netns/nip.h | 5 +- .../include/net/ninet_connection_sock.h | 5 +- .../linux-5.10/include/net/ninet_hashtables.h | 5 +- .../linux-5.10/include/net/nip.h | 20 +- .../linux-5.10/include/net/nip_addrconf.h | 3 +- .../linux-5.10/include/net/nip_fib.h | 6 +- .../linux-5.10/include/net/nip_route.h | 3 +- .../linux-5.10/include/net/nip_udp.h | 10 +- .../linux-5.10/include/net/nndisc.h | 5 +- .../linux-5.10/include/net/tcp_nip.h | 19 +- .../linux-5.10/include/net/transp_nip.h | 3 +- .../include/uapi/linux/newip_route.h | 6 +- .../linux-5.10/include/uapi/linux/nip.h | 8 +- .../linux-5.10/include/uapi/linux/nip_icmp.h | 5 +- .../linux-5.10/net/newip/af_ninet.c | 11 +- .../linux-5.10/net/newip/devninet.c | 19 +- .../linux-5.10/net/newip/icmp.c | 19 +- .../net/newip/ninet_connection_sock.c | 5 +- .../linux-5.10/net/newip/ninet_hashtables.c | 28 +- .../linux-5.10/net/newip/nip_addrconf.c | 31 +- .../linux-5.10/net/newip/nip_addrconf_core.c | 5 +- .../linux-5.10/net/newip/nip_fib.c | 12 +- .../linux-5.10/net/newip/nip_fib_rules.c | 19 +- .../linux-5.10/net/newip/nip_input.c | 12 +- .../linux-5.10/net/newip/nip_output.c | 19 +- .../linux-5.10/net/newip/nip_sockglue.c | 12 +- .../linux-5.10/net/newip/nndisc.c | 20 +- .../linux-5.10/net/newip/protocol.c | 11 +- .../linux-5.10/net/newip/route.c | 71 +++- .../linux-5.10/net/newip/tcp_nip.c | 334 +++++++++++++++- .../linux-5.10/net/newip/tcp_nip_input.c | 60 ++- .../linux-5.10/net/newip/tcp_nip_output.c | 42 +- .../linux-5.10/net/newip/tcp_nip_timer.c | 15 +- .../linux-5.10/net/newip/udp.c | 81 +++- 49 files changed, 1673 insertions(+), 533 deletions(-) create mode 100644 LICENSES-GPL-2.0 create mode 100644 LICENSES-Linux-syscall-note rename newip/README.OpenSource => README.OpenSource (82%) create mode 100644 newip/third_party/linux-5.10/LICENSES/GPL-2.0 create mode 100644 newip/third_party/linux-5.10/LICENSES/Linux-syscall-note rename newip/{src => third_party}/linux-5.10/include/linux/newip_route.h (91%) rename newip/{src => third_party}/linux-5.10/include/linux/nip.h (63%) rename newip/{src => third_party}/linux-5.10/include/linux/nip_icmp.h (91%) rename newip/{src => third_party}/linux-5.10/include/net/flow_nip.h (91%) rename newip/{src => third_party}/linux-5.10/include/net/if_ninet.h (96%) rename newip/{src => third_party}/linux-5.10/include/net/netns/nip.h (92%) rename newip/{src => third_party}/linux-5.10/include/net/ninet_connection_sock.h (93%) rename newip/{src => third_party}/linux-5.10/include/net/ninet_hashtables.h (98%) rename newip/{src => third_party}/linux-5.10/include/net/nip.h (91%) rename newip/{src => third_party}/linux-5.10/include/net/nip_addrconf.h (98%) rename newip/{src => third_party}/linux-5.10/include/net/nip_fib.h (98%) rename newip/{src => third_party}/linux-5.10/include/net/nip_route.h (97%) rename newip/{src => third_party}/linux-5.10/include/net/nip_udp.h (80%) rename newip/{src => third_party}/linux-5.10/include/net/nndisc.h (97%) rename newip/{src => third_party}/linux-5.10/include/net/tcp_nip.h (91%) rename newip/{src => third_party}/linux-5.10/include/net/transp_nip.h (93%) rename newip/{src => third_party}/linux-5.10/include/uapi/linux/newip_route.h (94%) rename newip/{src => third_party}/linux-5.10/include/uapi/linux/nip.h (89%) rename newip/{src => third_party}/linux-5.10/include/uapi/linux/nip_icmp.h (90%) rename newip/{src => third_party}/linux-5.10/net/newip/af_ninet.c (98%) rename newip/{src => third_party}/linux-5.10/net/newip/devninet.c (72%) rename newip/{src => third_party}/linux-5.10/net/newip/icmp.c (72%) rename newip/{src => third_party}/linux-5.10/net/newip/ninet_connection_sock.c (98%) rename newip/{src => third_party}/linux-5.10/net/newip/ninet_hashtables.c (96%) rename newip/{src => third_party}/linux-5.10/net/newip/nip_addrconf.c (95%) rename newip/{src => third_party}/linux-5.10/net/newip/nip_addrconf_core.c (94%) rename newip/{src => third_party}/linux-5.10/net/newip/nip_fib.c (97%) rename newip/{src => third_party}/linux-5.10/net/newip/nip_fib_rules.c (67%) rename newip/{src => third_party}/linux-5.10/net/newip/nip_input.c (95%) rename newip/{src => third_party}/linux-5.10/net/newip/nip_output.c (96%) rename newip/{src => third_party}/linux-5.10/net/newip/nip_sockglue.c (93%) rename newip/{src => third_party}/linux-5.10/net/newip/nndisc.c (96%) rename newip/{src => third_party}/linux-5.10/net/newip/protocol.c (80%) rename newip/{src => third_party}/linux-5.10/net/newip/route.c (90%) rename newip/{src => third_party}/linux-5.10/net/newip/tcp_nip.c (77%) rename newip/{src => third_party}/linux-5.10/net/newip/tcp_nip_input.c (96%) rename newip/{src => third_party}/linux-5.10/net/newip/tcp_nip_output.c (96%) rename newip/{src => third_party}/linux-5.10/net/newip/tcp_nip_timer.c (96%) rename newip/{src => third_party}/linux-5.10/net/newip/udp.c (77%) diff --git a/LICENSE b/LICENSE index dd5d5a7..9b69d20 100644 --- a/LICENSE +++ b/LICENSE @@ -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. - - - Copyright (C) - - 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. - - , 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. diff --git a/LICENSES-GPL-2.0 b/LICENSES-GPL-2.0 new file mode 100644 index 0000000..ff0812f --- /dev/null +++ b/LICENSES-GPL-2.0 @@ -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. + + + Copyright (C) + + 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. + + , 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. diff --git a/LICENSES-Linux-syscall-note b/LICENSES-Linux-syscall-note new file mode 100644 index 0000000..9abdad7 --- /dev/null +++ b/LICENSES-Linux-syscall-note @@ -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: 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 + diff --git a/OAT.xml b/OAT.xml index 9078e6d..43727b7 100644 --- a/OAT.xml +++ b/OAT.xml @@ -56,22 +56,25 @@ Note:If the text contains special characters, please escape them according to th - - - - + + + - - - - - - - - - + + + + + + + + + + + + + diff --git a/newip/README.OpenSource b/README.OpenSource similarity index 82% rename from newip/README.OpenSource rename to README.OpenSource index 5d105da..05419d1 100644 --- a/newip/README.OpenSource +++ b/README.OpenSource @@ -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", diff --git a/newip/README_zh.md b/newip/README_zh.md index 3d1d118..e4ba50f 100644 --- a/newip/README_zh.md +++ b/newip/README_zh.md @@ -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 diff --git a/newip/apply_newip.sh b/newip/apply_newip.sh index a81ced7..0b111a6 100644 --- a/newip/apply_newip.sh +++ b/newip/apply_newip.sh @@ -13,28 +13,32 @@ NEWIP_SOURCE_ROOT=$OHOS_SOURCE_ROOT/kernel/linux/common_modules/newip function main() { - 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 ./ - - 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 - - popd + pushd . + + 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 + + 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 + + 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 diff --git a/newip/src/linux-5.10/drivers/net/bt/Makefile b/newip/src/linux-5.10/drivers/net/bt/Makefile index 15494e8..d74df17 100644 --- a/newip/src/linux-5.10/drivers/net/bt/Makefile +++ b/newip/src/linux-5.10/drivers/net/bt/Makefile @@ -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 diff --git a/newip/third_party/linux-5.10/LICENSES/GPL-2.0 b/newip/third_party/linux-5.10/LICENSES/GPL-2.0 new file mode 100644 index 0000000..ff0812f --- /dev/null +++ b/newip/third_party/linux-5.10/LICENSES/GPL-2.0 @@ -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. + + + Copyright (C) + + 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. + + , 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. diff --git a/newip/third_party/linux-5.10/LICENSES/Linux-syscall-note b/newip/third_party/linux-5.10/LICENSES/Linux-syscall-note new file mode 100644 index 0000000..9abdad7 --- /dev/null +++ b/newip/third_party/linux-5.10/LICENSES/Linux-syscall-note @@ -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: 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 + diff --git a/newip/src/linux-5.10/include/linux/newip_route.h b/newip/third_party/linux-5.10/include/linux/newip_route.h similarity index 91% rename from newip/src/linux-5.10/include/linux/newip_route.h rename to newip/third_party/linux-5.10/include/linux/newip_route.h index d38c087..94fbfc0 100644 --- a/newip/src/linux-5.10/include/linux/newip_route.h +++ b/newip/third_party/linux-5.10/include/linux/newip_route.h @@ -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 * * 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 diff --git a/newip/src/linux-5.10/include/linux/nip.h b/newip/third_party/linux-5.10/include/linux/nip.h similarity index 63% rename from newip/src/linux-5.10/include/linux/nip.h rename to newip/third_party/linux-5.10/include/linux/nip.h index 65e9d9b..09732c2 100644 --- a/newip/src/linux-5.10/include/linux/nip.h +++ b/newip/third_party/linux-5.10/include/linux/nip.h @@ -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, + * Corey Minyard + * Florian La Roche + * + * 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 diff --git a/newip/src/linux-5.10/include/linux/nip_icmp.h b/newip/third_party/linux-5.10/include/linux/nip_icmp.h similarity index 91% rename from newip/src/linux-5.10/include/linux/nip_icmp.h rename to newip/third_party/linux-5.10/include/linux/nip_icmp.h index bb67221..0d45bc9 100644 --- a/newip/src/linux-5.10/include/linux/nip_icmp.h +++ b/newip/third_party/linux-5.10/include/linux/nip_icmp.h @@ -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, * * 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 diff --git a/newip/src/linux-5.10/include/net/flow_nip.h b/newip/third_party/linux-5.10/include/net/flow_nip.h similarity index 91% rename from newip/src/linux-5.10/include/net/flow_nip.h rename to newip/third_party/linux-5.10/include/net/flow_nip.h index fe625d0..47fc151 100644 --- a/newip/src/linux-5.10/include/net/flow_nip.h +++ b/newip/third_party/linux-5.10/include/net/flow_nip.h @@ -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 diff --git a/newip/src/linux-5.10/include/net/if_ninet.h b/newip/third_party/linux-5.10/include/net/if_ninet.h similarity index 96% rename from newip/src/linux-5.10/include/net/if_ninet.h rename to newip/third_party/linux-5.10/include/net/if_ninet.h index 347099c..d0d99ad 100644 --- a/newip/src/linux-5.10/include/net/if_ninet.h +++ b/newip/third_party/linux-5.10/include/net/if_ninet.h @@ -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 * * 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 diff --git a/newip/src/linux-5.10/include/net/netns/nip.h b/newip/third_party/linux-5.10/include/net/netns/nip.h similarity index 92% rename from newip/src/linux-5.10/include/net/netns/nip.h rename to newip/third_party/linux-5.10/include/net/netns/nip.h index ed9ceb2..6fe7535 100644 --- a/newip/src/linux-5.10/include/net/netns/nip.h +++ b/newip/third_party/linux-5.10/include/net/netns/nip.h @@ -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__ diff --git a/newip/src/linux-5.10/include/net/ninet_connection_sock.h b/newip/third_party/linux-5.10/include/net/ninet_connection_sock.h similarity index 93% rename from newip/src/linux-5.10/include/net/ninet_connection_sock.h rename to newip/third_party/linux-5.10/include/net/ninet_connection_sock.h index 31dc606..5c71f03 100644 --- a/newip/src/linux-5.10/include/net/ninet_connection_sock.h +++ b/newip/third_party/linux-5.10/include/net/ninet_connection_sock.h @@ -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 diff --git a/newip/src/linux-5.10/include/net/ninet_hashtables.h b/newip/third_party/linux-5.10/include/net/ninet_hashtables.h similarity index 98% rename from newip/src/linux-5.10/include/net/ninet_hashtables.h rename to newip/third_party/linux-5.10/include/net/ninet_hashtables.h index 8171e01..3944283 100644 --- a/newip/src/linux-5.10/include/net/ninet_hashtables.h +++ b/newip/third_party/linux-5.10/include/net/ninet_hashtables.h @@ -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 diff --git a/newip/src/linux-5.10/include/net/nip.h b/newip/third_party/linux-5.10/include/net/nip.h similarity index 91% rename from newip/src/linux-5.10/include/net/nip.h rename to newip/third_party/linux-5.10/include/net/nip.h index 6343aa7..52dc97a 100644 --- a/newip/src/linux-5.10/include/net/nip.h +++ b/newip/third_party/linux-5.10/include/net/nip.h @@ -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, + * Alan Cox, + * + * Changes: + * Mike McLagan : Routing by source + * + * Based on include/net/protocol.h + * Author: Fred N. van Kempen, + * + * 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 diff --git a/newip/src/linux-5.10/include/net/nip_addrconf.h b/newip/third_party/linux-5.10/include/net/nip_addrconf.h similarity index 98% rename from newip/src/linux-5.10/include/net/nip_addrconf.h rename to newip/third_party/linux-5.10/include/net/nip_addrconf.h index 8455272..89ff6bb 100644 --- a/newip/src/linux-5.10/include/net/nip_addrconf.h +++ b/newip/third_party/linux-5.10/include/net/nip_addrconf.h @@ -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 diff --git a/newip/src/linux-5.10/include/net/nip_fib.h b/newip/third_party/linux-5.10/include/net/nip_fib.h similarity index 98% rename from newip/src/linux-5.10/include/net/nip_fib.h rename to newip/third_party/linux-5.10/include/net/nip_fib.h index 0d24d93..598e3d6 100644 --- a/newip/src/linux-5.10/include/net/nip_fib.h +++ b/newip/third_party/linux-5.10/include/net/nip_fib.h @@ -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 */ #ifndef _NET_NEWIP_FIB_H #define _NET_NEWIP_FIB_H diff --git a/newip/src/linux-5.10/include/net/nip_route.h b/newip/third_party/linux-5.10/include/net/nip_route.h similarity index 97% rename from newip/src/linux-5.10/include/net/nip_route.h rename to newip/third_party/linux-5.10/include/net/nip_route.h index 870c093..b152678 100644 --- a/newip/src/linux-5.10/include/net/nip_route.h +++ b/newip/third_party/linux-5.10/include/net/nip_route.h @@ -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 diff --git a/newip/src/linux-5.10/include/net/nip_udp.h b/newip/third_party/linux-5.10/include/net/nip_udp.h similarity index 80% rename from newip/src/linux-5.10/include/net/nip_udp.h rename to newip/third_party/linux-5.10/include/net/nip_udp.h index 571de5a..0d3e4b6 100644 --- a/newip/src/linux-5.10/include/net/nip_udp.h +++ b/newip/third_party/linux-5.10/include/net/nip_udp.h @@ -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, + * + * 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 diff --git a/newip/src/linux-5.10/include/net/nndisc.h b/newip/third_party/linux-5.10/include/net/nndisc.h similarity index 97% rename from newip/src/linux-5.10/include/net/nndisc.h rename to newip/third_party/linux-5.10/include/net/nndisc.h index d8c776f..0aeb378 100644 --- a/newip/src/linux-5.10/include/net/nndisc.h +++ b/newip/third_party/linux-5.10/include/net/nndisc.h @@ -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 diff --git a/newip/src/linux-5.10/include/net/tcp_nip.h b/newip/third_party/linux-5.10/include/net/tcp_nip.h similarity index 91% rename from newip/src/linux-5.10/include/net/tcp_nip.h rename to newip/third_party/linux-5.10/include/net/tcp_nip.h index 8d112ab..a70379b 100644 --- a/newip/src/linux-5.10/include/net/tcp_nip.h +++ b/newip/third_party/linux-5.10/include/net/tcp_nip.h @@ -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, + * + * Based on include/linux/tcp.h + * Author: Fred N. van Kempen, + * + * 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 diff --git a/newip/src/linux-5.10/include/net/transp_nip.h b/newip/third_party/linux-5.10/include/net/transp_nip.h similarity index 93% rename from newip/src/linux-5.10/include/net/transp_nip.h rename to newip/third_party/linux-5.10/include/net/transp_nip.h index 35fe52c..903b1c5 100644 --- a/newip/src/linux-5.10/include/net/transp_nip.h +++ b/newip/third_party/linux-5.10/include/net/transp_nip.h @@ -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 diff --git a/newip/src/linux-5.10/include/uapi/linux/newip_route.h b/newip/third_party/linux-5.10/include/uapi/linux/newip_route.h similarity index 94% rename from newip/src/linux-5.10/include/uapi/linux/newip_route.h rename to newip/third_party/linux-5.10/include/uapi/linux/newip_route.h index 15495b3..3988ef1 100644 --- a/newip/src/linux-5.10/include/uapi/linux/newip_route.h +++ b/newip/third_party/linux-5.10/include/uapi/linux/newip_route.h @@ -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 * * 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 diff --git a/newip/src/linux-5.10/include/uapi/linux/nip.h b/newip/third_party/linux-5.10/include/uapi/linux/nip.h similarity index 89% rename from newip/src/linux-5.10/include/uapi/linux/nip.h rename to newip/third_party/linux-5.10/include/uapi/linux/nip.h index cd96325..8b9acd6 100644 --- a/newip/src/linux-5.10/include/uapi/linux/nip.h +++ b/newip/third_party/linux-5.10/include/uapi/linux/nip.h @@ -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 */ #ifndef _UAPI_NEWIP_H #define _UAPI_NEWIP_H diff --git a/newip/src/linux-5.10/include/uapi/linux/nip_icmp.h b/newip/third_party/linux-5.10/include/uapi/linux/nip_icmp.h similarity index 90% rename from newip/src/linux-5.10/include/uapi/linux/nip_icmp.h rename to newip/third_party/linux-5.10/include/uapi/linux/nip_icmp.h index 7970fe1..a7125f0 100644 --- a/newip/src/linux-5.10/include/uapi/linux/nip_icmp.h +++ b/newip/third_party/linux-5.10/include/uapi/linux/nip_icmp.h @@ -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, * * 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 diff --git a/newip/src/linux-5.10/net/newip/af_ninet.c b/newip/third_party/linux-5.10/net/newip/af_ninet.c similarity index 98% rename from newip/src/linux-5.10/net/newip/af_ninet.c rename to newip/third_party/linux-5.10/net/newip/af_ninet.c index f35ea70..05aa1ce 100644 --- a/newip/src/linux-5.10/net/newip/af_ninet.c +++ b/newip/third_party/linux-5.10/net/newip/af_ninet.c @@ -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 + * + * 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__ diff --git a/newip/src/linux-5.10/net/newip/devninet.c b/newip/third_party/linux-5.10/net/newip/devninet.c similarity index 72% rename from newip/src/linux-5.10/net/newip/devninet.c rename to newip/third_party/linux-5.10/net/newip/devninet.c index 272cf05..66428e1 100644 --- a/newip/src/linux-5.10/net/newip/devninet.c +++ b/newip/third_party/linux-5.10/net/newip/devninet.c @@ -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, + * Mark Evans, + * + * Additional Authors: + * Alan Cox, + * Alexey Kuznetsov, + * + * 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__ diff --git a/newip/src/linux-5.10/net/newip/icmp.c b/newip/third_party/linux-5.10/net/newip/icmp.c similarity index 72% rename from newip/src/linux-5.10/net/newip/icmp.c rename to newip/third_party/linux-5.10/net/newip/icmp.c index 0b388ef..1f796a6 100644 --- a/newip/src/linux-5.10/net/newip/icmp.c +++ b/newip/third_party/linux-5.10/net/newip/icmp.c @@ -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 + * + * 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__ diff --git a/newip/src/linux-5.10/net/newip/ninet_connection_sock.c b/newip/third_party/linux-5.10/net/newip/ninet_connection_sock.c similarity index 98% rename from newip/src/linux-5.10/net/newip/ninet_connection_sock.c rename to newip/third_party/linux-5.10/net/newip/ninet_connection_sock.c index c0dd907..6bb3d96 100644 --- a/newip/src/linux-5.10/net/newip/ninet_connection_sock.c +++ b/newip/third_party/linux-5.10/net/newip/ninet_connection_sock.c @@ -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__ diff --git a/newip/src/linux-5.10/net/newip/ninet_hashtables.c b/newip/third_party/linux-5.10/net/newip/ninet_hashtables.c similarity index 96% rename from newip/src/linux-5.10/net/newip/ninet_hashtables.c rename to newip/third_party/linux-5.10/net/newip/ninet_hashtables.c index 908aecb..19071ff 100644 --- a/newip/src/linux-5.10/net/newip/ninet_hashtables.c +++ b/newip/third_party/linux-5.10/net/newip/ninet_hashtables.c @@ -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 + * + * Based on include/net/ip.h + * Authors: Ross Biro + * Fred N. van Kempen, + * Alan Cox, + * + * Changes: + * Mike McLagan : Routing by source + * + * Based on include/net/ipv6.h + * Authors: + * Pedro Roque + * + * Based on net/core/secure_seq.c + * Copyright (C) 2016 Jason A. Donenfeld . 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__ diff --git a/newip/src/linux-5.10/net/newip/nip_addrconf.c b/newip/third_party/linux-5.10/net/newip/nip_addrconf.c similarity index 95% rename from newip/src/linux-5.10/net/newip/nip_addrconf.c rename to newip/third_party/linux-5.10/net/newip/nip_addrconf.c index 1badbca..231cf69 100644 --- a/newip/src/linux-5.10/net/newip/nip_addrconf.c +++ b/newip/third_party/linux-5.10/net/newip/nip_addrconf.c @@ -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 + * Alexey Kuznetsov + * + * Changes: + * + * Janos Farkas : delete timer on ifdown + * + * 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__ diff --git a/newip/src/linux-5.10/net/newip/nip_addrconf_core.c b/newip/third_party/linux-5.10/net/newip/nip_addrconf_core.c similarity index 94% rename from newip/src/linux-5.10/net/newip/nip_addrconf_core.c rename to newip/third_party/linux-5.10/net/newip/nip_addrconf_core.c index 914886b..67bc745 100644 --- a/newip/src/linux-5.10/net/newip/nip_addrconf_core.c +++ b/newip/third_party/linux-5.10/net/newip/nip_addrconf_core.c @@ -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__ diff --git a/newip/src/linux-5.10/net/newip/nip_fib.c b/newip/third_party/linux-5.10/net/newip/nip_fib.c similarity index 97% rename from newip/src/linux-5.10/net/newip/nip_fib.c rename to newip/third_party/linux-5.10/net/newip/nip_fib.c index fbf25d2..442da30 100644 --- a/newip/src/linux-5.10/net/newip/nip_fib.c +++ b/newip/third_party/linux-5.10/net/newip/nip_fib.c @@ -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 + * + * 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__ diff --git a/newip/src/linux-5.10/net/newip/nip_fib_rules.c b/newip/third_party/linux-5.10/net/newip/nip_fib_rules.c similarity index 67% rename from newip/src/linux-5.10/net/newip/nip_fib_rules.c rename to newip/third_party/linux-5.10/net/newip/nip_fib_rules.c index 03fcd5c..cc2a0e7 100644 --- a/newip/src/linux-5.10/net/newip/nip_fib_rules.c +++ b/newip/third_party/linux-5.10/net/newip/nip_fib_rules.c @@ -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, + * Thomas Graf * - * NewIP Routing Policy Rules + * Fixes: + * Rani Assaf : local_rule cannot be deleted + * Marc Boucher : routing by fwmark * - * Based on net/ipv6/fib_rules.c * 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 + * Ville Nuorvala + * + * NewIP Routing Policy Rules */ #define pr_fmt(fmt) KBUILD_MODNAME ": [%s:%d] " fmt, __func__, __LINE__ diff --git a/newip/src/linux-5.10/net/newip/nip_input.c b/newip/third_party/linux-5.10/net/newip/nip_input.c similarity index 95% rename from newip/src/linux-5.10/net/newip/nip_input.c rename to newip/third_party/linux-5.10/net/newip/nip_input.c index 9941b40..b459b77 100644 --- a/newip/src/linux-5.10/net/newip/nip_input.c +++ b/newip/third_party/linux-5.10/net/newip/nip_input.c @@ -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 + * Ian P. Morris + * + * 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__ diff --git a/newip/src/linux-5.10/net/newip/nip_output.c b/newip/third_party/linux-5.10/net/newip/nip_output.c similarity index 96% rename from newip/src/linux-5.10/net/newip/nip_output.c rename to newip/third_party/linux-5.10/net/newip/nip_output.c index bbea85d..8b2bc16 100644 --- a/newip/src/linux-5.10/net/newip/nip_output.c +++ b/newip/third_party/linux-5.10/net/newip/nip_output.c @@ -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 + * + * 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 + * 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__ diff --git a/newip/src/linux-5.10/net/newip/nip_sockglue.c b/newip/third_party/linux-5.10/net/newip/nip_sockglue.c similarity index 93% rename from newip/src/linux-5.10/net/newip/nip_sockglue.c rename to newip/third_party/linux-5.10/net/newip/nip_sockglue.c index 1ae978e..89d1291 100644 --- a/newip/src/linux-5.10/net/newip/nip_sockglue.c +++ b/newip/third_party/linux-5.10/net/newip/nip_sockglue.c @@ -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__ diff --git a/newip/src/linux-5.10/net/newip/nndisc.c b/newip/third_party/linux-5.10/net/newip/nndisc.c similarity index 96% rename from newip/src/linux-5.10/net/newip/nndisc.c rename to newip/third_party/linux-5.10/net/newip/nndisc.c index 59d1a2a..6b65e0f 100644 --- a/newip/src/linux-5.10/net/newip/nndisc.c +++ b/newip/third_party/linux-5.10/net/newip/nndisc.c @@ -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 + * Mike Shaver + * + * 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__ diff --git a/newip/src/linux-5.10/net/newip/protocol.c b/newip/third_party/linux-5.10/net/newip/protocol.c similarity index 80% rename from newip/src/linux-5.10/net/newip/protocol.c rename to newip/third_party/linux-5.10/net/newip/protocol.c index 928917a..63b137a 100644 --- a/newip/src/linux-5.10/net/newip/protocol.c +++ b/newip/third_party/linux-5.10/net/newip/protocol.c @@ -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 + * + * 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__ diff --git a/newip/src/linux-5.10/net/newip/route.c b/newip/third_party/linux-5.10/net/newip/route.c similarity index 90% rename from newip/src/linux-5.10/net/newip/route.c rename to newip/third_party/linux-5.10/net/newip/route.c index e7c8a4a..8c7232f 100644 --- a/newip/src/linux-5.10/net/newip/route.c +++ b/newip/third_party/linux-5.10/net/newip/route.c @@ -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, + * Alan Cox, + * Linus Torvalds, + * Alexey Kuznetsov, + * + * 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 + * + * 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__ diff --git a/newip/src/linux-5.10/net/newip/tcp_nip.c b/newip/third_party/linux-5.10/net/newip/tcp_nip.c similarity index 77% rename from newip/src/linux-5.10/net/newip/tcp_nip.c rename to newip/third_party/linux-5.10/net/newip/tcp_nip.c index 5dc18af..110cb3f 100644 --- a/newip/src/linux-5.10/net/newip/tcp_nip.c +++ b/newip/third_party/linux-5.10/net/newip/tcp_nip.c @@ -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, + * Mark Evans, + * Corey Minyard + * Florian La Roche, + * Charles Hedrick, + * Linus Torvalds, + * Alan Cox, + * Matthew Dillon, + * Arnt Gulbrandsen, + * Jorge Cwik, + * + * 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 + * + * 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 + * (from old tcp.c code) + * Alan Cox (Borrowed comments 8-)) + * + * Based on net/ipv4/tcp_output.c + * Authors: Ross Biro + * Fred N. van Kempen, + * Mark Evans, + * Corey Minyard + * Florian La Roche, + * Charles Hedrick, + * Linus Torvalds, + * Alan Cox, + * Matthew Dillon, + * Arnt Gulbrandsen, + * Jorge Cwik, + * + * 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, + * Mark Evans, + * Corey Minyard + * Florian La Roche, + * Charles Hedrick, + * Linus Torvalds, + * Alan Cox, + * Matthew Dillon, + * Arnt Gulbrandsen, + * Jorge Cwik, + * + * 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 + * Mark Evans, + * Corey Minyard + * Florian La Roche, + * Charles Hedrick, + * Linus Torvalds, + * Alan Cox, + * Matthew Dillon, + * Arnt Gulbrandsen, + * Jorge Cwik, + * + * 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 + * Mark Evans, + * Corey Minyard + * Florian La Roche, + * Charles Hedrick, + * Linus Torvalds, + * Alan Cox, + * Matthew Dillon, + * Arnt Gulbrandsen, + * Jorge Cwik, + * + * 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, + * Mark Evans, + * Corey Minyard + * Florian La Roche, + * Charles Hedrick, + * Linus Torvalds, + * Alan Cox, + * Matthew Dillon, + * Arnt Gulbrandsen, + * Jorge Cwik, * * 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__ diff --git a/newip/src/linux-5.10/net/newip/tcp_nip_timer.c b/newip/third_party/linux-5.10/net/newip/tcp_nip_timer.c similarity index 96% rename from newip/src/linux-5.10/net/newip/tcp_nip_timer.c rename to newip/third_party/linux-5.10/net/newip/tcp_nip_timer.c index ad91350..7e37cda 100644 --- a/newip/src/linux-5.10/net/newip/tcp_nip_timer.c +++ b/newip/third_party/linux-5.10/net/newip/tcp_nip_timer.c @@ -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, + * Mark Evans, + * Corey Minyard + * Florian La Roche, + * Charles Hedrick, + * Linus Torvalds, + * Alan Cox, + * Matthew Dillon, + * Arnt Gulbrandsen, + * Jorge Cwik, * * 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__ diff --git a/newip/src/linux-5.10/net/newip/udp.c b/newip/third_party/linux-5.10/net/newip/udp.c similarity index 77% rename from newip/src/linux-5.10/net/newip/udp.c rename to newip/third_party/linux-5.10/net/newip/udp.c index 276019b..641e6ed 100644 --- a/newip/src/linux-5.10/net/newip/udp.c +++ b/newip/third_party/linux-5.10/net/newip/udp.c @@ -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, + * Arnt Gulbrandsen, + * Alan Cox, + * Hirokazu Takahashi, + * + * 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 : Add Encapulation Support + * James Chapman : Add L2TP encapsulation type. + * + * Based on net/ipv6/udp.c + * Authors: + * Pedro Roque + * + * 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__ -- Gitee