diff --git a/internal/database/database.sql b/internal/database/database.sql index e2fb5e9..21c5c78 100644 --- a/internal/database/database.sql +++ b/internal/database/database.sql @@ -96,7 +96,7 @@ DECLARE BEGIN SELECT uuid, action_next_hop, action_srh FROM rule WHERE (rule.type_uplink = TRUE AND rule.enabled = TRUE - AND in_gnb_ip << rule.match_gnb_ip_prefix AND in_ue_ip_address << rule.match_ue_ip_prefix) + AND rule.match_gnb_ip_prefix && in_gnb_ip AND rule.match_ue_ip_prefix && in_ue_ip_address) INTO var_uuid, out_action_next_hop, out_action_srh LIMIT 1; IF not FOUND THEN @@ -118,7 +118,7 @@ BEGIN RETURN QUERY SELECT rule.action_next_hop AS "t_action_next_hop", rule.action_srh AS "t_action_srh" FROM rule WHERE (rule.type_uplink = FALSE AND rule.enabled = TRUE - AND in_ue_ip_address << match_ue_ip_prefix); + AND match_ue_ip_prefix in_ue_ip_address); END;$$ LANGUAGE plpgsql; CREATE OR REPLACE FUNCTION get_rule( diff --git a/internal/netfunc/headend-gtp4-ctrl.go b/internal/netfunc/headend-gtp4-ctrl.go index 26a7e7b..eaa92ce 100644 --- a/internal/netfunc/headend-gtp4-ctrl.go +++ b/internal/netfunc/headend-gtp4-ctrl.go @@ -71,6 +71,9 @@ func (h HeadendGTP4WithCtrl) Handle(ctx context.Context, packet []byte) ([]byte, return nil, ctx.Err() default: action, err = h.db.SetUplinkAction(ctx, teid, srgw_ip, gnb_ip, ue_ip_address) + if err != nil { + return nil, err + } } }