Add support for LoongArch64
Thanks for the contribution! Before we can merge this, we need @fangyaling to sign the Salesforce Inc. Contributor License Agreement.
Did you test this on hardware? Can you give us more details? I want to make sure this was actually tested in use, and not that it just compiles. Thanks!
@wadey The patch is tested on LS3A5000 and worked with all tests passed. === RUN TestNewAllowListFromConfig --- PASS: TestNewAllowListFromConfig (0.00s) === RUN TestAllowList_Allow --- PASS: TestAllowList_Allow (0.00s) === RUN TestLocalAllowList_AllowName --- PASS: TestLocalAllowList_AllowName (0.00s) === RUN TestBits --- PASS: TestBits (0.00s) === RUN TestBitsDupeCounter --- PASS: TestBitsDupeCounter (0.00s) === RUN TestBitsOutOfWindowCounter --- PASS: TestBitsOutOfWindowCounter (0.00s) === RUN TestBitsLostCounter --- PASS: TestBitsLostCounter (0.00s) === RUN Test_NewConnectionManagerTest --- PASS: Test_NewConnectionManagerTest (0.00s) === RUN Test_NewConnectionManagerTest2 --- PASS: Test_NewConnectionManagerTest2 (0.00s) === RUN Test_NewConnectionManagerTest_DisconnectInvalid --- PASS: Test_NewConnectionManagerTest_DisconnectInvalid (0.01s) === RUN TestControl_GetHostInfoByVpnIp --- PASS: TestControl_GetHostInfoByVpnIp (0.00s) === RUN TestParsequery --- PASS: TestParsequery (0.00s) === RUN TestNewFirewall --- PASS: TestNewFirewall (0.00s) === RUN TestFirewall_AddRule --- PASS: TestFirewall_AddRule (0.00s) === RUN TestFirewall_Drop --- PASS: TestFirewall_Drop (0.01s) === RUN TestFirewall_Drop2 --- PASS: TestFirewall_Drop2 (0.00s) === RUN TestFirewall_Drop3 --- PASS: TestFirewall_Drop3 (0.00s) === RUN TestFirewall_DropConntrackReload --- PASS: TestFirewall_DropConntrackReload (0.00s) === RUN Test_parsePort --- PASS: Test_parsePort (0.00s) === RUN TestNewFirewallFromConfig --- PASS: TestNewFirewallFromConfig (0.00s) === RUN TestAddFirewallRulesFromConfig --- PASS: TestAddFirewallRulesFromConfig (0.00s) === RUN TestTCPRTTTracking --- PASS: TestTCPRTTTracking (0.00s) === RUN TestFirewall_convertRule --- PASS: TestFirewall_convertRule (0.00s) === RUN Test_NewHandshakeManagerVpnIp --- PASS: Test_NewHandshakeManagerVpnIp (0.00s) === RUN Test_NewHandshakeManagerTrigger --- PASS: Test_NewHandshakeManagerTrigger (0.00s) === RUN TestOldIPv4Only --- PASS: TestOldIPv4Only (0.00s) === RUN TestNewLhQuery --- PASS: TestNewLhQuery (0.00s) === RUN Test_lhStaticMapping --- PASS: Test_lhStaticMapping (0.00s) === RUN TestLighthouse_Memory --- PASS: TestLighthouse_Memory (0.00s) === RUN TestLighthouse_reload --- PASS: TestLighthouse_reload (0.00s) === RUN Test_ipMaskContains --- PASS: Test_ipMaskContains (0.00s) === RUN Test_newPacket --- PASS: Test_newPacket (0.00s) === RUN TestNewPunchyFromConfig --- PASS: TestNewPunchyFromConfig (0.00s) === RUN TestPunchy_reload --- PASS: TestPunchy_reload (0.00s) === RUN TestRemoteList_Rebuild --- PASS: TestRemoteList_Rebuild (0.00s) === RUN TestNewSystemTimerWheel --- PASS: TestNewSystemTimerWheel (0.00s) === RUN TestSystemTimerWheel_findWheel --- PASS: TestSystemTimerWheel_findWheel (0.00s) === RUN TestSystemTimerWheel_Add --- PASS: TestSystemTimerWheel_Add (0.00s) === RUN TestSystemTimerWheel_Purge --- PASS: TestSystemTimerWheel_Purge (0.00s) === RUN TestNewTimerWheel --- PASS: TestNewTimerWheel (0.00s) === RUN TestTimerWheel_findWheel --- PASS: TestTimerWheel_findWheel (0.00s) === RUN TestTimerWheel_Add --- PASS: TestTimerWheel_Add (0.00s) === RUN TestTimerWheel_Purge --- PASS: TestTimerWheel_Purge (0.00s) PASS ok github.com/slackhq/nebula 0.050s === RUN TestMarshalingNebulaCertificate --- PASS: TestMarshalingNebulaCertificate (0.00s) === RUN TestNebulaCertificate_Sign --- PASS: TestNebulaCertificate_Sign (0.00s) === RUN TestNebulaCertificate_Expired --- PASS: TestNebulaCertificate_Expired (0.00s) === RUN TestNebulaCertificate_MarshalJSON --- PASS: TestNebulaCertificate_MarshalJSON (0.00s) === RUN TestNebulaCertificate_Verify --- PASS: TestNebulaCertificate_Verify (0.00s) === RUN TestNebulaCertificate_Verify_IPs --- PASS: TestNebulaCertificate_Verify_IPs (0.00s) === RUN TestNebulaCertificate_Verify_Subnets --- PASS: TestNebulaCertificate_Verify_Subnets (0.00s) === RUN TestNebulaCertificate_VerifyPrivateKey --- PASS: TestNebulaCertificate_VerifyPrivateKey (0.00s) === RUN TestNewCAPoolFromBytes --- PASS: TestNewCAPoolFromBytes (0.00s) === RUN TestUnmrshalCertPEM --- PASS: TestUnmrshalCertPEM (0.00s) === RUN TestUnmarshalEd25519PrivateKey --- PASS: TestUnmarshalEd25519PrivateKey (0.00s) === RUN TestUnmarshalX25519PrivateKey --- PASS: TestUnmarshalX25519PrivateKey (0.00s) === RUN TestUnmarshalEd25519PublicKey --- PASS: TestUnmarshalEd25519PublicKey (0.00s) === RUN TestUnmarshalX25519PublicKey --- PASS: TestUnmarshalX25519PublicKey (0.00s) === RUN TestMarshalingNebulaCertificateConsistency --- PASS: TestMarshalingNebulaCertificateConsistency (0.00s) === RUN TestNebulaCertificate_Copy --- PASS: TestNebulaCertificate_Copy (0.00s) === RUN TestUnmarshalNebulaCertificate --- PASS: TestUnmarshalNebulaCertificate (0.00s) PASS ok github.com/slackhq/nebula/cert 0.036s === RUN TestCIDRTree_Contains --- PASS: TestCIDRTree_Contains (0.00s) === RUN TestCIDRTree_MostSpecificContains --- PASS: TestCIDRTree_MostSpecificContains (0.00s) === RUN TestCIDRTree_Match --- PASS: TestCIDRTree_Match (0.00s) === RUN TestCIDR6Tree_MostSpecificContains --- PASS: TestCIDR6Tree_MostSpecificContains (0.00s) === RUN TestCIDR6Tree_MostSpecificContainsIpV6 --- PASS: TestCIDR6Tree_MostSpecificContainsIpV6 (0.00s) PASS ok github.com/slackhq/nebula/cidr 0.009s === RUN Test_caSummary --- PASS: Test_caSummary (0.00s) === RUN Test_caHelp --- PASS: Test_caHelp (0.00s) === RUN Test_ca --- PASS: Test_ca (0.01s) === RUN Test_keygenSummary --- PASS: Test_keygenSummary (0.00s) === RUN Test_keygenHelp --- PASS: Test_keygenHelp (0.00s) === RUN Test_keygen --- PASS: Test_keygen (0.01s) === RUN Test_help --- PASS: Test_help (0.00s) === RUN Test_handleError --- PASS: Test_handleError (0.00s) === RUN Test_printSummary --- PASS: Test_printSummary (0.00s) === RUN Test_printHelp --- PASS: Test_printHelp (0.00s) === RUN Test_printCert --- PASS: Test_printCert (0.00s) === RUN Test_signSummary --- PASS: Test_signSummary (0.00s) === RUN Test_signHelp --- PASS: Test_signHelp (0.00s) === RUN Test_signCert --- PASS: Test_signCert (0.01s) === RUN Test_verifySummary --- PASS: Test_verifySummary (0.00s) === RUN Test_verifyHelp --- PASS: Test_verifyHelp (0.00s) === RUN Test_verify --- PASS: Test_verify (0.00s) PASS ok github.com/slackhq/nebula/cmd/nebula-cert 0.044s === RUN TestConfig_Load --- PASS: TestConfig_Load (0.00s) === RUN TestConfig_Get --- PASS: TestConfig_Get (0.00s) === RUN TestConfig_GetStringSlice --- PASS: TestConfig_GetStringSlice (0.00s) === RUN TestConfig_GetBool --- PASS: TestConfig_GetBool (0.00s) === RUN TestConfig_HasChanged --- PASS: TestConfig_HasChanged (0.00s) === RUN TestConfig_ReloadConfig --- PASS: TestConfig_ReloadConfig (0.00s) PASS ok github.com/slackhq/nebula/config 0.018s === RUN TestEncode --- PASS: TestEncode (0.00s) === RUN TestParse --- PASS: TestParse (0.00s) === RUN TestTypeName --- PASS: TestTypeName (0.00s) === RUN TestSubTypeName --- PASS: TestSubTypeName (0.00s) === RUN TestTypeMap --- PASS: TestTypeMap (0.00s) === RUN TestHeader_String --- PASS: TestHeader_String (0.00s) === RUN TestHeader_MarshalJSON --- PASS: TestHeader_MarshalJSON (0.00s) PASS ok github.com/slackhq/nebula/header 0.013s === RUN TestVpnIp_String --- PASS: TestVpnIp_String (0.00s) PASS ok github.com/slackhq/nebula/iputil 0.009s === RUN Test_parseRoutes --- PASS: Test_parseRoutes (0.00s) === RUN Test_parseUnsafeRoutes --- PASS: Test_parseUnsafeRoutes (0.00s) === RUN Test_makeRouteTree --- PASS: Test_makeRouteTree (0.00s) === RUN TestTunAdvMSS === RUN TestTunAdvMSS/default === RUN TestTunAdvMSS/default-min === RUN TestTunAdvMSS/default-low === RUN TestTunAdvMSS/route === RUN TestTunAdvMSS/route-min === RUN TestTunAdvMSS/route-high --- PASS: TestTunAdvMSS (0.00s) --- PASS: TestTunAdvMSS/default (0.00s) --- PASS: TestTunAdvMSS/default-min (0.00s) --- PASS: TestTunAdvMSS/default-low (0.00s) --- PASS: TestTunAdvMSS/route (0.00s) --- PASS: TestTunAdvMSS/route-min (0.00s) --- PASS: TestTunAdvMSS/route-high (0.00s) PASS ok github.com/slackhq/nebula/overlay 0.012s === RUN TestContextualError_Log --- PASS: TestContextualError_Log (0.00s) PASS ok github.com/slackhq/nebula/util 0.012s
LoongArch ref: 1)https://www.loongson.cn/EN/product/show?id=6 2)https://loongson.github.io/LoongArch-Documentation/LoongArch-Vol1-EN.html
@wadey Can you check the upper info enough or not? Thanks!