(nm *netmap.NetworkMap)
| 1292 | } |
| 1293 | |
| 1294 | func (e *userspaceEngine) SetNetworkMap(nm *netmap.NetworkMap) { |
| 1295 | e.mu.Lock() |
| 1296 | e.netMap = nm |
| 1297 | tunGROKnobsChanged := false |
| 1298 | var curUDP, curTCP bool |
| 1299 | if buildfeatures.HasGRO && runtime.GOOS == "linux" && e.controlKnobs != nil { |
| 1300 | curUDP = e.controlKnobs.DisableTUNUDPGRO.Load() |
| 1301 | curTCP = e.controlKnobs.DisableTUNTCPGRO.Load() |
| 1302 | // Only act on transitions toward "disabled"; wireguard-go's GRO |
| 1303 | // disablement is sticky and cannot be reversed without restart. |
| 1304 | if (curUDP && !e.lastAppliedDisableTUNUDPGRO) || |
| 1305 | (curTCP && !e.lastAppliedDisableTUNTCPGRO) { |
| 1306 | tunGROKnobsChanged = true |
| 1307 | } |
| 1308 | e.lastAppliedDisableTUNUDPGRO = curUDP |
| 1309 | e.lastAppliedDisableTUNTCPGRO = curTCP |
| 1310 | } |
| 1311 | e.mu.Unlock() |
| 1312 | if buildfeatures.HasGRO && tunGROKnobsChanged { |
| 1313 | e.logf("wgengine: TUN GRO knobs changed (DisableTUNUDPGRO=%v DisableTUNTCPGRO=%v); applying", |
| 1314 | curUDP, curTCP) |
| 1315 | e.tundev.ApplyGROKnobs(e.controlKnobs) |
| 1316 | } |
| 1317 | if e.networkLogger.Running() { |
| 1318 | e.networkLogger.ReconfigNetworkMap(nm) |
| 1319 | } |
| 1320 | } |
| 1321 | |
| 1322 | func (e *userspaceEngine) UpdateStatus(sb *ipnstate.StatusBuilder) { |
| 1323 | st, err := e.getStatus() |
nothing calls this directly
no test coverage detected