Hey Everyone,
As I'm trying to implement a COntroller that does ProxyARP within a
topology with different VLANs I wonder how to correctly generate a
ARP_Reply Frame with VLAN Header, as the "next" and "payload" variables in
the corresponding POX modules confuse me a bit tbh.
This is my code so far:
packet = packetData
log.debug("HANDLING ARP")
log.debug("INCOMING PACKET: " + str(packet))
if packet.type == packet.VLAN_TYPE:
packet = packetData.next.next
srcMAC = self.ipToMac[str(packet.protodst)]
arp_reply = arp()
arp_reply.hwsrc = srcMAC
arp_reply.hwdst = packet.hwsrc
arp_reply.opcode = arp.REPLY
arp_reply.protosrc = self.macToIp[str(srcMAC)]
arp_reply.protodst = packet.protosrc
vlan_pkt = vlan()
vlan.payload = arp_reply
ether = ethernet()
ether.type = ethernet.VLAN_TYPE
ether.dst = packet.hwsrc
ether.src = srcMAC
ether.payload = arp_reply
ether.next = vlan_pkt
But it does not work due to
ERROR:openflow.of_01:[00-00-00-00-00-05 1] OpenFlow Error:
[...]
[00-00-00-00-00-05 1] Error: type: OFPET_BAD_ACTION (2)
[00-00-00-00-00-05 1] Error: code: OFPBAC_BAD_LEN (1)
Anyone any idea or suggestion?
Would be much appreciated!
Regards,
Julius
[00-00-00-00-00-05 1] Error: datalen: 64