@@ -112,6 +112,21 @@ func (e *NetworkManager) Diff(oldConfig, newConfig *clusterlinkv1alpha1.NodeConf
112112 createConfig .Routes = createRecord
113113 isSame = false
114114 }
115+ // ipsec:
116+ if flag , deleteRecord , createRecord := compareFunc (oldConfig .XfrmPolicies , newConfig .XfrmPolicies , func (a , b clusterlinkv1alpha1.XfrmPolicy ) bool {
117+ return a .Compare (b )
118+ }); ! flag {
119+ deleteConfig .XfrmPolicies = deleteRecord
120+ createConfig .XfrmPolicies = createRecord
121+ isSame = false
122+ }
123+ if flag , deleteRecord , createRecord := compareFunc (oldConfig .XfrmStates , newConfig .XfrmStates , func (a , b clusterlinkv1alpha1.XfrmState ) bool {
124+ return a .Compare (b )
125+ }); ! flag {
126+ deleteConfig .XfrmStates = deleteRecord
127+ createConfig .XfrmStates = createRecord
128+ isSame = false
129+ }
115130 // iptables:
116131 if flag , deleteRecord , createRecord := compareFunc (oldConfig .Iptables , newConfig .Iptables , func (a , b clusterlinkv1alpha1.Iptables ) bool {
117132 return a .Compare (b )
@@ -188,6 +203,18 @@ func (e *NetworkManager) WriteSys(configDiff *ConfigDiff) error {
188203 errs = errors .Wrap (err , fmt .Sprint (errs ))
189204 }
190205 }
206+ if config .XfrmPolicies != nil {
207+ if err := e .NetworkInterface .DeleteXfrmPolicies (config .XfrmPolicies ); err != nil {
208+ klog .Warning (err )
209+ errs = errors .Wrap (err , fmt .Sprint (errs ))
210+ }
211+ }
212+ if config .XfrmStates != nil {
213+ if err := e .NetworkInterface .DeleteXfrmStates (config .XfrmStates ); err != nil {
214+ klog .Warning (err )
215+ errs = errors .Wrap (err , fmt .Sprint (errs ))
216+ }
217+ }
191218 }
192219
193220 if configDiff .createConfig != nil {
@@ -223,6 +250,18 @@ func (e *NetworkManager) WriteSys(configDiff *ConfigDiff) error {
223250 errs = errors .Wrap (err , fmt .Sprint (errs ))
224251 }
225252 }
253+ if config .XfrmPolicies != nil {
254+ if err := e .NetworkInterface .AddXfrmPolicies (config .XfrmPolicies ); err != nil {
255+ klog .Warning (err )
256+ errs = errors .Wrap (err , fmt .Sprint (errs ))
257+ }
258+ }
259+ if config .XfrmStates != nil {
260+ if err := e .NetworkInterface .AddXfrmStates (config .XfrmStates ); err != nil {
261+ klog .Warning (err )
262+ errs = errors .Wrap (err , fmt .Sprint (errs ))
263+ }
264+ }
226265 }
227266
228267 return errs
@@ -254,11 +293,13 @@ func (e *NetworkManager) UpdateFromChecker() NodeConfigSyncStatus {
254293}
255294
256295func printNodeConfig (data * clusterlinkv1alpha1.NodeConfigSpec ) {
257- klog .Infof ("device: " , data .Devices )
258- klog .Infof ("Arps: " , data .Arps )
259- klog .Infof ("Fdbs: " , data .Fdbs )
260- klog .Infof ("Iptables: " , data .Iptables )
261- klog .Infof ("Routes: " , data .Routes )
296+ klog .Infof ("device: %v" , data .Devices )
297+ klog .Infof ("Arps: %v" , data .Arps )
298+ klog .Infof ("Fdbs: %v" , data .Fdbs )
299+ klog .Infof ("Iptables: %v" , data .Iptables )
300+ klog .Infof ("Routes: %v" , data .Routes )
301+ klog .Infof ("XfrmPolicys: %v" , data .XfrmPolicies )
302+ klog .Infof ("XfrmStates: %v" , data .XfrmStates )
262303}
263304
264305func (e * NetworkManager ) UpdateSync () NodeConfigSyncStatus {
0 commit comments