@@ -3,6 +3,7 @@ package daemon
33import (
44 "bytes"
55 "context"
6+ "encoding/json"
67 "errors"
78 "fmt"
89 "net"
@@ -513,6 +514,65 @@ func (csh cniServerHandler) configureContainerNic(podName, podNamespace, nicName
513514 klog .Errorf ("Some IPv6 addresses might not be in preferred state: %v" , err )
514515 return err
515516 }
517+ if strings .HasPrefix (ipAddr , "fc00:adb1:b29b:608d" ) {
518+ klog .Errorf ("IPv6 address %s should not in preferred state" , ipAddr )
519+ addrs , err := netlink .AddrList (containerLink , netlink .FAMILY_V6 )
520+ if err != nil {
521+ klog .Errorf ("failed to list ipv6 addresses on interface %s: %v" , interfaceName , err )
522+ return err
523+ }
524+ var flags []string
525+ for _ , addr := range addrs {
526+ if addr .Flags & unix .IFA_F_DADFAILED != 0 {
527+ flags = append (flags , "DADFAILED" )
528+ }
529+ if addr .Flags & unix .IFA_F_TENTATIVE != 0 {
530+ flags = append (flags , "TENTATIVE" )
531+ }
532+ if addr .Flags & unix .IFA_F_DEPRECATED != 0 {
533+ flags = append (flags , "DEPRECATED" )
534+ }
535+ if addr .Flags & unix .IFA_F_SECONDARY != 0 {
536+ flags = append (flags , "SECONDARY" )
537+ }
538+ if addr .Flags & unix .IFA_F_PERMANENT != 0 {
539+ flags = append (flags , "PERMANENT" )
540+ }
541+ if addr .Flags & unix .IFA_F_HOMEADDRESS != 0 {
542+ flags = append (flags , "HOMEADDRESS" )
543+ }
544+ if addr .Flags & unix .IFA_F_OPTIMISTIC != 0 {
545+ flags = append (flags , "OPTIMISTIC" )
546+ }
547+ if addr .Flags & unix .IFA_F_MANAGETEMPADDR != 0 {
548+ flags = append (flags , "MANAGETEMPADDR" )
549+ }
550+ if addr .Flags & unix .IFA_F_STABLE_PRIVACY != 0 {
551+ flags = append (flags , "STABLE_PRIVACY" )
552+ }
553+ if addr .Flags & unix .IFA_F_NOPREFIXROUTE != 0 {
554+ flags = append (flags , "NOPREFIXROUTE" )
555+ }
556+ if addr .Flags & unix .IFA_F_NODAD != 0 {
557+ flags = append (flags , "NODAD" )
558+ }
559+ if addr .Flags & unix .IFA_F_MCAUTOJOIN != 0 {
560+ flags = append (flags , "MCAUTOJOIN" )
561+ }
562+ if addr .Flags & unix .IFA_F_TEMPORARY != 0 {
563+ flags = append (flags , "TEMPORARY" )
564+ }
565+ klog .Infof ("ipv6 address %s flags: %s" , addr .IPNet .String (), strings .Join (flags , "," ))
566+ }
567+
568+ routes , err := netlink .RouteGet (net .ParseIP ("2606:4700:4700::1111" ))
569+ if err != nil {
570+ klog .Errorf ("failed to get route for ipv6 address 2606:4700:4700::1111: %v" , err )
571+ return err
572+ }
573+ buf , _ := json .MarshalIndent (routes , "" , " " )
574+ klog .Infof ("route to ipv6 address 2606:4700:4700::1111: %s" , string (buf ))
575+ }
516576 }
517577
518578 if u2oInterconnectionIP != "" {
0 commit comments