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

Reply via email to