snmp: let handlers accept OID from a lesser prefix

Most table handlers do not expect to be given an OID whose prefix is
outside what they can handle. This is not a problem with the SMUX
implementation since it always correct the OID such that the prefix
matches. However, this is not the case for the AgentX
implementation. A new function, smux_header_table() is used to do this
normalization.
diff --git a/ospf6d/ospf6_snmp.c b/ospf6d/ospf6_snmp.c
index 11b733b..d252f54 100644
--- a/ospf6d/ospf6_snmp.c
+++ b/ospf6d/ospf6_snmp.c
@@ -306,6 +306,10 @@
   if (ospf6 == NULL)
     return NULL;
 
+  if (smux_header_table(v, name, length, exact, var_len, write_method)
+      == MATCH_FAILED)
+    return NULL;
+
   len = *length - v->namelen;
   len = (len >= sizeof (u_int32_t) ? sizeof (u_int32_t) : 0);
   if (exact && len != sizeof (u_int32_t))
@@ -372,6 +376,10 @@
   struct ospf6_area *oa;
   struct listnode *node;
 
+  if (smux_header_table(v, name, length, exact, var_len, write_method)
+      == MATCH_FAILED)
+    return NULL;
+
   memset (&area_id, 0, sizeof (struct in_addr));
   type = 0;
   memset (&id, 0, sizeof (struct in_addr));