Exemplo n.º 1
0
    def _build_stack(self):
        """
        Create all the layer and link them together. Of
        course other layer could be added if implemented.
        """
        #Layer 2
        self.eth = EthernetProtocol(self.interface)

        #Layer2.5
        self.mpls = MPLSProtocol()
        self.eth.register_layer(self.mpls)

        #Layer 3
        ip = IPProtocol()
        self.eth.register_layer(ip)

        #register mpls layer
        self.mpls.register_upper_layer(ip.name, ip)
        print self.mpls.name
        ip.register_lower_layer(self.mpls.name, self.mpls)

        arp = ARPProtocol(self.interface)
        self.eth.register_layer(arp)

        #Layer 4
        self.tcp = TCPProtocol()
        ip.register_layer(self.tcp)
        self.udp = UDPProtocol()
        ip.register_layer(self.udp)

        #Layer 7
        self.dns = DNSProtocol(self.interface)
        self.udp.register_layer(self.dns)