Skip to content
Snippets Groups Projects
Commit 0c4ffc04 authored by Kuang-Ching Wang's avatar Kuang-Ching Wang
Browse files

Merge pull request #353 from Sovietaced/sovietaced

Floodlight - 39 - Added serializer for firewall rules, prints readable MAC, IP addresses
parents df131ebf cc0600bc
No related branches found
No related tags found
No related merge requests found
package net.floodlightcontroller.firewall;
import org.codehaus.jackson.map.annotate.JsonSerialize;
import org.openflow.protocol.OFMatch;
import net.floodlightcontroller.packet.Ethernet;
......@@ -8,6 +9,7 @@ import net.floodlightcontroller.packet.IPv4;
import net.floodlightcontroller.packet.TCP;
import net.floodlightcontroller.packet.UDP;
@JsonSerialize(using=FirewallRuleSerializer.class)
public class FirewallRule implements Comparable<FirewallRule> {
public int ruleid;
......
package net.floodlightcontroller.firewall;
import java.io.IOException;
import net.floodlightcontroller.packet.IPv4;
import net.floodlightcontroller.util.MACAddress;
import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.JsonProcessingException;
import org.codehaus.jackson.map.JsonSerializer;
import org.codehaus.jackson.map.SerializerProvider;
/**
* Serialize a FirewallRule object
* Implemented to output easily readable MAC, IP addresses
* @author Jason Parraga
*/
public class FirewallRuleSerializer extends JsonSerializer<FirewallRule> {
@Override
public void serialize(FirewallRule rule, JsonGenerator jGen,
SerializerProvider serializer) throws IOException,
JsonProcessingException {
jGen.writeStartObject();
jGen.writeNumberField("ruleid", rule.ruleid);
jGen.writeNumberField("dpid", rule.dpid);
jGen.writeNumberField("in_port", rule.in_port);
jGen.writeStringField("dl_src",String.valueOf(MACAddress.valueOf(rule.dl_src)));
jGen.writeStringField("dl_dst", String.valueOf(MACAddress.valueOf(rule.dl_dst)));
jGen.writeNumberField("dl_type", rule.dl_type);
jGen.writeStringField("nw_src_prefix", IPv4.fromIPv4Address(rule.nw_src_prefix));
jGen.writeNumberField("nw_src_maskbits", rule.nw_src_maskbits);
jGen.writeStringField("nw_dst_prefix", IPv4.fromIPv4Address(rule.nw_dst_prefix));
jGen.writeNumberField("nw_dst_maskbits", rule.nw_dst_maskbits);
jGen.writeNumberField("nw_proto", rule.nw_proto);
jGen.writeNumberField("tp_src", rule.tp_src);
jGen.writeNumberField("tp_dst", rule.tp_dst);
jGen.writeBooleanField("wildcard_dpid", rule.wildcard_dpid);
jGen.writeBooleanField("wildcard_in_port", rule.wildcard_in_port);
jGen.writeBooleanField("wildcard_dl_src", rule.wildcard_dl_src);
jGen.writeBooleanField("wildcard_dl_dst", rule.wildcard_dl_dst);
jGen.writeBooleanField("wildcard_dl_type", rule.wildcard_dl_type);
jGen.writeBooleanField("wildcard_nw_src", rule.wildcard_nw_src);
jGen.writeBooleanField("wildcard_nw_dst", rule.wildcard_nw_dst);
jGen.writeBooleanField("wildcard_nw_proto", rule.wildcard_nw_proto);
jGen.writeBooleanField("wildcard_tp_src", rule.wildcard_tp_src);
jGen.writeBooleanField("wildcard_tp_dst", rule.wildcard_tp_dst);
jGen.writeNumberField("priority", rule.priority);
jGen.writeStringField("action", String.valueOf(rule.action));
jGen.writeEndObject();
}
}
\ No newline at end of file
......@@ -23,7 +23,7 @@ public class FirewallRulesResource extends ServerResource {
protected static Logger log = LoggerFactory.getLogger(FirewallRulesResource.class);
@Get("json")
public Object handleRequest() {
public List<FirewallRule> retrieve() {
IFirewallService firewall =
(IFirewallService)getContext().getAttributes().
get(IFirewallService.class.getCanonicalName());
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment