DHCP-Relay : fix logs when one or more DHCP servers are not reachable.
Change-Id: Ideb0b1a959bd352b0c535b6010bd9326aca184f8
diff --git a/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/Dhcp4HandlerImpl.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/Dhcp4HandlerImpl.java
index de9b192..98acf80 100644
--- a/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/Dhcp4HandlerImpl.java
+++ b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/Dhcp4HandlerImpl.java
@@ -745,8 +745,6 @@
IPv4 ipv4Packet = (IPv4) etherReply.getPayload();
UDP udpPacket = (UDP) ipv4Packet.getPayload();
DHCP dhcpPacket = (DHCP) udpPacket.getPayload();
-
-
Ip4Address clientInterfaceIp =
interfaceService.getInterfacesByPort(context.inPacket().receivedFrom())
.stream()
@@ -777,9 +775,10 @@
List<InternalPacket> internalPackets = new ArrayList<>();
List<DhcpServerInfo> serverInfoList = findValidServerInfo(directConnFlag);
List<DhcpServerInfo> copyServerInfoList = new ArrayList<DhcpServerInfo>(serverInfoList);
-
+ boolean serverFound = false;
for (DhcpServerInfo serverInfo : copyServerInfoList) {
+
etherReply = (Ethernet) ethernetPacket.clone();
ipv4Packet = (IPv4) etherReply.getPayload();
udpPacket = (UDP) ipv4Packet.getPayload();
@@ -790,13 +789,14 @@
}
DhcpServerInfo newServerInfo = getHostInfoForServerInfo(serverInfo, serverInfoList);
if (newServerInfo == null) {
- log.warn("Can't get server interface with host info resolved, ignore");
+ log.debug("Can't get server interface with host info resolved, ignore serverInfo {} serverInfoList {}",
+ serverInfo, serverInfoList);
continue;
}
-
Interface serverInterface = getServerInterface(newServerInfo);
if (serverInterface == null) {
- log.warn("Can't get server interface, ignore");
+ log.debug("Can't get server interface, ignore for serverInfo {}, serverInfoList {}",
+ serverInfo, serverInfoList);
continue;
}
@@ -804,11 +804,12 @@
MacAddress macFacingServer = serverInterface.mac();
log.debug("Interfacing server {} Mac : {} ", ipFacingServer, macFacingServer);
if (ipFacingServer == null || macFacingServer == null) {
- log.warn("No IP address for server Interface {}", serverInterface);
+ log.debug("No IP address for server Interface {}", serverInterface);
continue;
}
-
+ serverFound = true;
+ log.debug("Server Info Found {}", serverInfo.getDhcpConnectMac());
etherReply.setSourceMACAddress(macFacingServer);
// set default info and replace with indirect if available later on.
if (newServerInfo.getDhcpConnectMac().isPresent()) {
@@ -891,7 +892,6 @@
// Remove broadcast flag
dhcpPacket.setFlags((short) 0);
-
udpPacket.setPayload(dhcpPacket);
// As a DHCP relay, the source port should be server port( instead
// of client port.
@@ -905,6 +905,9 @@
internalPackets.add(internalPacket);
}
+ if (!serverFound) {
+ log.warn("ProcessDhcp4PacketFromClient No Server Found");
+ }
return internalPackets;
}
@@ -1907,7 +1910,7 @@
log.debug("DHCP server {} host info found. ConnectPt{} Mac {} vlan {}", serverInfo.getDhcpServerIp4(),
dhcpServerConnectPoint, dhcpServerConnectMac, dhcpConnectVlan);
} else {
- log.warn("DHCP server {} not resolve yet connectPt {} mac {} vlan {}", serverInfo.getDhcpServerIp4(),
+ log.debug("DHCP server {} not resolve yet connectPt {} mac {} vlan {}", serverInfo.getDhcpServerIp4(),
dhcpServerConnectPoint, dhcpServerConnectMac, dhcpConnectVlan);
Ip4Address ipToProbe;
@@ -1919,7 +1922,7 @@
String hostToProbe = serverInfo.getDhcpGatewayIp6()
.map(ip -> "gateway").orElse("server");
- log.warn("Dynamically probing to resolve {} IP {}", hostToProbe, ipToProbe);
+ log.debug("Dynamically probing to resolve {} IP {}", hostToProbe, ipToProbe);
hostService.startMonitoringIp(ipToProbe);
Set<Host> hosts = hostService.getHostsByIp(ipToProbe);
@@ -1933,7 +1936,7 @@
newServerInfo = serverInfo;
log.warn("Dynamically host found host {}", host);
} else {
- log.warn("No host found host ip {} dynamically", ipToProbe);
+ log.debug("No host found host ip {} dynamically", ipToProbe);
}
}
return newServerInfo;
diff --git a/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/Dhcp6HandlerImpl.java b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/Dhcp6HandlerImpl.java
index 8de2293..131c9a0 100644
--- a/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/Dhcp6HandlerImpl.java
+++ b/apps/dhcprelay/app/src/main/java/org/onosproject/dhcprelay/Dhcp6HandlerImpl.java
@@ -1079,6 +1079,7 @@
DHCP6 clientDhcp6 = (DHCP6) clientUdp.getPayload();
boolean directConnFlag = Dhcp6HandlerUtil.directlyConnected(clientDhcp6);
+ boolean serverFound = false;
List<InternalPacket> internalPackets = new ArrayList<>();
List<DhcpServerInfo> serverInfoList = findValidServerInfo(directConnFlag);
List<DhcpServerInfo> copyServerInfoList = new ArrayList<DhcpServerInfo>(serverInfoList);
@@ -1090,14 +1091,19 @@
}
DhcpServerInfo newServerInfo = getHostInfoForServerInfo(serverInfo, serverInfoList);
if (newServerInfo == null) {
- log.warn("Can't get server interface with host info resolved, ignore");
+ log.debug("Can't get server interface with host info resolved, ignore serverInfo {} serverInfoList {}",
+ serverInfo, serverInfoList);
continue;
}
Interface serverInterface = getServerInterface(newServerInfo);
if (serverInterface == null) {
- log.warn("Can't get server interface, ignore");
+ log.debug("Can't get server interface, ignore for serverInfo {}, serverInfoList {}",
+ serverInfo, serverInfoList);
continue;
}
+
+ serverFound = true;
+ log.debug("Server Info Found {}", serverInfo.getDhcpConnectMac());
Ethernet etherRouted = (Ethernet) clientPacket.clone();
MacAddress macFacingServer = serverInterface.mac();
if (macFacingServer == null) {
@@ -1112,6 +1118,9 @@
internalPackets.add(internalPacket);
log.debug("Sending LQ to DHCP server {}", newServerInfo.getDhcpServerIp6());
}
+ if (!serverFound) {
+ log.warn("ProcessDhcp6PacketFromClient No Server Found");
+ }
log.debug("num of client packets to send is{}", internalPackets.size());
return internalPackets;
@@ -1240,6 +1249,9 @@
String clientConnectionPointStr = new String(interfaceIdOption.getInPort());
ConnectPoint clientConnectionPoint = ConnectPoint.deviceConnectPoint(clientConnectionPointStr);
VlanId vlanIdInUse = VlanId.vlanId(interfaceIdOption.getVlanId());
+
+ log.debug("processDhcp6PacketFromServer Interface Id Mac {}, port{}, vlan {}",
+ peerMac, clientConnectionPointStr, vlanIdInUse);
Interface clientInterface = interfaceService.getInterfacesByPort(clientConnectionPoint)
.stream().filter(iface -> Dhcp6HandlerUtil.interfaceContainsVlan(iface, vlanIdInUse))
.findFirst().orElse(null);
@@ -1551,7 +1563,7 @@
log.debug("DHCP server {} host info found. ConnectPt{} Mac {} vlan {}", serverInfo.getDhcpServerIp6(),
dhcpServerConnectPoint, dhcpServerConnectMac, dhcpConnectVlan);
} else {
- log.warn("DHCP server {} not resolve yet connectPt {} mac {} vlan {}", serverInfo.getDhcpServerIp6(),
+ log.debug("DHCP server {} not resolve yet connectPt {} mac {} vlan {}", serverInfo.getDhcpServerIp6(),
dhcpServerConnectPoint, dhcpServerConnectMac, dhcpConnectVlan);
Ip6Address ipToProbe;
@@ -1563,7 +1575,7 @@
String hostToProbe = serverInfo.getDhcpGatewayIp6()
.map(ip -> "gateway").orElse("server");
- log.info("Dynamically probing to resolve {} IP {}", hostToProbe, ipToProbe);
+ log.debug("Dynamically probing to resolve {} IP {}", hostToProbe, ipToProbe);
hostService.startMonitoringIp(ipToProbe);
Set<Host> hosts = hostService.getHostsByIp(ipToProbe);
@@ -1577,7 +1589,7 @@
newServerInfo = serverInfo;
log.warn("Dynamically host found host {}", host);
} else {
- log.warn("No host found host ip {} dynamically", ipToProbe);
+ log.debug("No host found host ip {} dynamically", ipToProbe);
}
}
return newServerInfo;