Skip to content
Snippets Groups Projects
Commit cc0600bc authored by Jason Parraga's avatar Jason Parraga
Browse files

Added serializer for firewall rules, prints readable MAC, IP addresses

parent 78c5ca2c
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