c966a69a29fa39b0fef7ed332c7c31fb9ea2af71
[packetcable.git] / packetcable-policy-server / src / main / java / org / opendaylight / controller / packetcable / provider / validation / impl / validators / qos / classifier / Ipv6ClassifierValidator.java
1 /*
2  * Copyright (c) 2015 CableLabs and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8
9 package org.opendaylight.controller.packetcable.provider.validation.impl.validators.qos.classifier;
10
11 import org.opendaylight.controller.packetcable.provider.validation.impl.validators.AbstractValidator;
12 import org.opendaylight.yang.gen.v1.urn.packetcable.rev151101.pcmm.qos.ipv6.classifier.Ipv6Classifier;
13
14 /**
15  * @author rvail
16  */
17 public class Ipv6ClassifierValidator extends AbstractValidator<Ipv6Classifier> {
18
19
20     private static final String SRC_IP6 = "ipv6-classifer.srcIp6";
21     private static final String DST_IP6 = "ipv6-classifer.dstIp6";
22
23     private static final String TC_LOW = "ipv6-classifer.tc-low";
24     private static final String TC_HIGH = "ipv6-classifer.tc-high";
25     private static final String TC_MASK = "ipv6-classifer.tc-mask";
26
27     private static final String NEXT_HEADER = "ipv6-classifer.next-hdr";
28
29     private static final String FLOW_LABEL = "ipv6-classifer.flow-label";
30
31     private static final String SRC_PORT_START = "ipv6-classifer.srcPort-start";
32     private static final String SRC_PORT_END = "ipv6-classifer.srcPort-end";
33
34     private static final String DST_PORT_START = "ipv6-classifer.dstPort-start";
35     private static final String DST_PORT_END = "ipv6-classifer.dstPort-end";
36
37     @Override
38     protected void doValidate(final Ipv6Classifier ipv6Classifier, final Extent extent) {
39         if (ipv6Classifier == null) {
40             getErrorMessages().add("ipv6-classifer must exist");
41             return;
42         }
43
44         mustExist(ipv6Classifier.getSrcIp6(), SRC_IP6);
45         mustExist(ipv6Classifier.getDstIp6(), DST_IP6);
46
47         mustExist(ipv6Classifier.getTcLow(), TC_LOW);
48         mustExist(ipv6Classifier.getTcHigh(), TC_HIGH);
49         mustExist(ipv6Classifier.getTcMask(), TC_MASK);
50
51         mustExist(ipv6Classifier.getNextHdr(), NEXT_HEADER);
52
53         mustExist(ipv6Classifier.getFlowLabel(), FLOW_LABEL);
54
55         mustExist(ipv6Classifier.getSrcPortStart(), SRC_PORT_START);
56         mustExist(ipv6Classifier.getSrcPortEnd(), SRC_PORT_END);
57
58         mustExist(ipv6Classifier.getDstPortStart(), DST_PORT_START);
59         mustExist(ipv6Classifier.getDstPortEnd(), DST_PORT_END);
60     }
61 }