}
public boolean transmitRtrAdvertisement(Ipv6RtrAdvertType raType, VirtualPort routerPort,
- NodeConnectorRef outport, RouterSolicitationPacket rsPdu) {
+ List<NodeConnectorRef> outportList, RouterSolicitationPacket rsPdu) {
if (pktService == null) {
- LOG.debug("transmitRtrAdvertisement packet processing service is not yet configured");
+ LOG.info("transmitRtrAdvertisement packet processing service is not yet configured");
return false;
}
RouterAdvertisementPacketBuilder raPacket = new RouterAdvertisementPacketBuilder();
updateRAResponse(raType, rsPdu, raPacket, routerPort);
// Serialize the response packet
byte[] txPayload = fillRouterAdvertisementPacket(raPacket.build());
- InstanceIdentifier<Node> outNode = outport.getValue().firstIdentifierOf(Node.class);
- TransmitPacketInput input = new TransmitPacketInputBuilder().setPayload(txPayload)
- .setNode(new NodeRef(outNode))
- .setEgress(outport).build();
- LOG.debug("Transmitting the Router Advt packet out {}", outport);
- pktService.transmitPacket(input);
+ for (NodeConnectorRef outport: outportList) {
+ InstanceIdentifier<Node> outNode = outport.getValue().firstIdentifierOf(Node.class);
+ TransmitPacketInput input = new TransmitPacketInputBuilder().setPayload(txPayload)
+ .setNode(new NodeRef(outNode))
+ .setEgress(outport).build();
+ LOG.debug("Transmitting the Router Advt packet out {}", outport);
+ pktService.transmitPacket(input);
+ }
return true;
}
short icmpv6RaFlags = 0;
String gatewayMac = null;
IpAddress gatewayIp;
- List<String> autoConfigPrefixList = new ArrayList<String>();
- List<String> statefulConfigPrefixList = new ArrayList<String>();
+ List<String> autoConfigPrefixList = new ArrayList<>();
+ List<String> statefulConfigPrefixList = new ArrayList<>();
for (VirtualSubnet subnet : routerPort.getSubnets()) {
gatewayIp = subnet.getGatewayIp();
} else {
raPacket.setRouterLifetime(Ipv6Constants.IPV6_ROUTER_LIFETIME);
}
- raPacket.setReachableTime((long) 0);
+ raPacket.setReachableTime((long) Ipv6Constants.IPV6_RA_REACHABLE_TIME);
raPacket.setRetransTime((long) 0);
raPacket.setOptionSourceAddr((short)1);
raPacket.setSourceAddrLength((short)1);
raPacket.setSourceLlAddress(MacAddress.getDefaultInstance(gatewayMac));
- List<PrefixList> prefixList = new ArrayList<PrefixList>();
+ List<PrefixList> prefixList = new ArrayList<>();
PrefixListBuilder prefix = new PrefixListBuilder();
prefix.setOptionType((short)3);
prefix.setOptionLength((short)4);