Some codes for Coursera SDN class

—firewall.py

”’
Coursera:
- Software Defined Networking (SDN) course
– Module 4 Programming Assignment

Professor: Nick Feamster
Teaching Assistant: Muhammad Shahbaz
”’

from pox.core import core
import pox.openflow.libopenflow_01 as of
from pox.lib.revent import *
from pox.lib.util import dpidToStr
from pox.lib.addresses import EthAddr
from collections import namedtuple
import os
import csv

log = core.getLogger()
policyFile = “%s/pox/pox/misc/firewall-policies.csv” % os.environ[ 'HOME' ]  

class Firewall (EventMixin):

    def __init__ (self):
        self.listenTo(core.openflow)
        log.debug(“Enabling Firewall Module”)

    def _handle_ConnectionUp (self, event):    
        ”’ Add your logic here … ”’
        rule = []

    with open(policyFile, ‘rb’) as f:
            reader = csv.reader(f)
            header = f.readline()
            for row in reader:
                row.pop(0)
                    rule.append(row)

        for (source,dest) in rule:
        log.debug(source)
        log.debug(dest)
            msg = of.ofp_flow_mod()
            msg.priority = 65535
            msg.match.dl_source = EthAddr(source)
            msg.match.dl_dest = EthAddr(dest)
            event.connection.send(msg)
                 
    
        log.debug(“Firewall rule installed on %s”, dpidToStr(event.dpid))

def launch ():
    ”’
    Starting the Firewall module
    ”’
    core.registerNew(Firewall)

—pyretic_firewall.py

from pyretic.lib.corelib import *
from pyretic.lib.std import *
from pyretic.examples.pyretic_switch import *
import os
import csv

policy_file = “%s/pyretic/pyretic/examples/firewall-policies.csv” % os.environ[ 'HOME' ]

def main():
# Copy the code you used to read firewall-policies.csv last week
        rule = []
        

        with open(policyFile, ‘rb’) as f:
                reader = csv.reader(f)
                header = f.readline()
                
                for row in reader:
                        row.pop(0)
                        rule.append(row)
                        print row
# start with a policy that doesn’t match any packets
        not_allowed = none
# and add traffic that isn’t allowed
        for (src,dst) in rule:
                not_allowed = not_allowed + match(srcmac=MAC(src), dstmac=MAC(dst)) + match(srcmac=MAC(dst), dstmac=MAC(src))
# express allowed traffic in terms of not_allowed – hint use ‘~’
                allowed = ~not_allowed
# and only send allowed traffic to the mac learning (act_like_switch) logic
        return allowed >> act_like_switch()

—resonance_states.py

#https://github.com/Resonance-SDN/pyresonance/blob/master/resonance_states.py
class LBStateMachine(ResonanceStateMachine):

    def handleMessage(self, msg, queue):

        msgtype, host, next_state = self.parse_json(msg)

        # Add the state transition logic
        # hint: use the state_transition function
        if msgtype == EVENT_TYPE_LB:
            self.state_transition(next_state, host, queue)

    def get_portA_hosts(self):
        return self.get_hosts_in_state(‘portA’)

    def get_portB_hosts(self):
        return self.get_hosts_in_state(‘portB’)

—resonance_policy.py

#https://github.com/Resonance-SDN/pyresonance/blob/master/resonance_policy.py
  def default_policy(self):
    # Add the logic to return the right policy (i.e., portA_policy or portB_policy
    # based on the state of the FSMs)

    #hint:
    # 1. get the list of hosts in portA state
    HostsA = self.fsm.get_portA_hosts()
    # 2. match the incoming packet’s source and destination ip against that list of hosts (using pyretic predicates i.e., “match”, “modify”, and “if_” etc)
    matchHostA = parallel([match(srcip=HostA) for HostA in HostsA]) + parallel([match(dstip=HostA) for HostA in HostsA])
    return (matchHostA >> self.portA_policy()) + (~matchHostA >>  self.portB_policy())

2012

Finalmente è arrivato il 2012, del 2011 non se ne poteva più.

Non penso che alla mezzanotte del 31 dicembre si chiudano tutte le schifezze che il 2011 si è portato dietro, ma diciamo che tra ieri sera a stamattina avverto che qualcosa è cambiato (e se un ingegnere dice che ha avuto un sesto senso allora deve essere vero per forza).

Quindi, buoni propositi per il 2012, non necessariamente in ordine di importanza

  • Laurea;
  • Lavoro da Laurea;
  • Lavoro non da Laurea;
  • Politica;
  • Viaggi (sempre di più, anche  fuori il Vecchio Continente);
  • Una buona dose di Soldi;
  • A better English (vale a dire TOEFL);
  • Pace interiore e quindi, prometto che mi ci impegno, una relazione più stabile.

In culo ai Maya, ovviamente.

Monti

L’Italia deve recuperare la fiducia dei mercati, fiducia messa a dura prova dalla perdita di credibilità causata da Berlusconi. La sfida dovrebbe essere riuscire a fare tutto questo senza andare a gravare sulle fasce più deboli. Su Monti non ho pregiudiziali, e questo non per Bilderberg o per qualche altra teoria del complotto, delle quali non mi fido tanto, ma voglio vedere cosa vuol mettere in campo. La credibilità dei mercati ce l’ha, resta da capire se i soldi per ripagare il debito li va a chiedere ai poveri cristi oppure ai miliardari.

Insistiamo sulla patrimoniale, insistiamo sulla lotta all’evasione, insistiamo, volendo, sulle pensioni di anzianità (quelle che permettono di andare in pensione a 40 anni), evitiamo di rendere facili i licenziamenti e se così si riescono a mettere a posto i conti andrà tutto bene. Speriamo…

ing. battuta

1492 “amici” su Facebook

Sulla crisi

Credo che, al momento, una delle priorità sia recuperare la fiducia degli investitori. Per fare questo l’Italia non può mostrarsi insolvente. Documentandomi un po’ ho visto che in passato la Grecia si è mostrata insolvente e ha impiegato almeno dieci anni per riprendersi. Anche se poi ripresa non è stata, visto che ha truccato i conti per entrare nell’Euro. In ogni caso, questo ragionamento implica che bisogna trovare dei soldi da qualche parte, come dice la BCE. Sempre la BCE, attraverso Draghi e Trichet, ha inviato il 5 agosto scorso una lettera al Governo italiano, indicando la necessità di alcune riforme che dovevano essere attuate entro settembre, cosa che il Governo non ha fatto.  La mia opinione è che bisogna a tutti i costi evitare che questi sacrifici li facciano sempre gli stessi poveracci, andando a “precarizzare” ulteriormente i contratti di inserimento nel mondo del lavoro dei giovani o scaricandoli sottoforma di tasse sui dipendenti del pubblico impiego. In realtà, leggendo attentamente i punti della lettera, non sono neanche convinto che la BCE voglia questo, quello di cui sono convinto è che ci sia qualche “furbo” che la prende a pretesto per introdurre in Italia ulteriore precariato. Questo per me significa Patrimoniale al di sopra dei 500mila euro (trattabili), tracciabilità dei pagamenti sopra i 500€, tassazione delle rendite finanziarie, tassazione dei vitalizi. Si puà parlare anche di pensioni. Io vado a sostenere il partito politico o la coalizione che vorrà fare questo. La cosa certa è che per avere una iniezione di fiducia, non si può sostenere chi è stato il principale artefice di questa perdita di fiducia. Quindi non si può sostenere Berlusconi (le cui notizie di possibili dimissioni hanno fatto diminuire il famoso spread BTP-BUND, senza contare che B. è persona sbeffeggiata da mezzo mondo, dalla stampa progressista e conservatrice, da economisti e filosofi, da singoli cittadini europei che ho incontrato all’estero) e neanche i ministri del suo Governo (Tremonti, Alfano, chi per loro). C’è poi chi dice che addirittura bisognasse contrastare completamente le politiche della BCE, vista come il baluardo della finanza mondiale che ha portato alla crisi, ma di questo non sono totalmente convinto. Credo che la politica dei debiti (tutta di ispirazione democristiana) e dei privilegi (recentemetne di ispirazione berlusconiana) sia stata la vera causa di tutto. That’s all.

Unire i puntini

Manifesto di SEL Roma

I militanti romani di Sinistra Ecologia e Libertà hanno speso un po’ di soldi per tappezzare la città con dei manifesti. Per salutare il fondatore di Apple. È un po ridicola come cosa, diciamolo. E infatti Vendola ha preso le dovute distanze.

Ma, come diceva l’imitazione di Antonio Lubrano, la domanda sorge spontanea. Una persona tanto innamorata di un miliardario guru monopolista e capitalista, può stare in un partito che quantomeno è di sinistra? Ovviamente no. O meglio, può, perché siamo in un Paese libero, ma poi non ti meravigliare se dico che la coerenza non è il tuo forte.

La verità è un’altra, e quel manifesto lo ha sintetizzato bene. Aderire alla Sinistra, oggi come ieri, fa figo. Come avere l’iPad. Ecco spiegato l’arcano. Come diceva Steve Jobs, basta unire i puntini.

 

Indiscusso innovatore

È morto Steve Jobs, un indiscusso innovatore. Dal mouse, ai sistemi operativi user friendly, all’iphone, all’ipad. Tutti oggetti che, direttamente o indirettamente, hanno cambiato la vita di mezzo mondo. E pensare che è ha lavorato fino a poco prima di morire, tant’è che è rimasto Amministratore Delegato di Apple fino a due mesi fa. Non sono un amante di Apple, provo fastidio nel vedere dei sistemi totalmente chiusi e che non ti danno margini per muoverti: store bloccati, funzionalità bloccate, tutto bloccato insomma. Ma Jobs ha avuto un altro indiscusso merito: portare l’estetica nella tecnologia, il che non è poco.

Le cronache dicono che si trattasse di un tipo strano, di un tipo che lincenziava i dipendenti in ascensore, cose così. Può darsi. Anche per questo non è il mio idolo. Ma al contempo non lo possiamo neanche sminuire. Ciao Jobs.


Contatti


MSN: antoniotirri[at]libero.it
Skype: antonio.tirri

Antonio Tirri
Antonio Tirri
Create Your Badge

Obama Sorry 4 Berlusconi: Media


Obama Sorry 4 Berlusconi su Facebook


Web Photo Album

My web album

Iniziative


Solidarietà Babbà al Rum

Addio Pizzo Addiopizzo

Usa OpenOffice
 Use OpenOffice.org

Il Calendario dei Santi Laici
Il calendario 2011 dei santi laici

Più cliccati

  • Nessuna

Archivi


Iscriviti

Ricevi al tuo indirizzo email tutti i nuovi post del sito.